Что такое фреймворк PHP? Что такое CMS?

Ходят слухи, что фреймворк и CMS — это не одно и то же, что это диаметрально противоположные вещи. Что CMS — это всего лишь система управления содержимым и никакого отношения к фреймворку не имеет.

Ниже я попробую объяснить моё понимание этих вещей и, вероятно, вы согласитесь с ними или же опровергнете (что тоже очень хорошо).

Фреймворк, согласно определению, это некий каркас. А именно то, что является основой, стартовой точкой для будущего программного проекта. Кроме этого,  каркас является ещё и некоторым ограничителем, то есть предполагает набор правил, рамки, в которых желательно находиться при разработке приложения.

Всё это легко можно сравнить с такими объектами реального мира как, например, пяльца для вышивания (круг с натянутым полотном, на котором швея создаёт узор), или нарисованные тонкими линиями клетки на листе тетради «в клеточку». С одной стороны эти вещи создают для вас опору, решают некоторые стартовые проблемы, с другой стороны — они создают ограничения.

Плюс фреймворков очевиден — они значительно сокращают время на разработку продукта, для этого их и используют. А вот конкретный фреймворк каждый выбирает для себя — исходя из задач (было бы глупым заниматься вышиванием на листе бумаги в клеточку) и знаний того или иного фреймворка.

Можно ли назвать фреймворком простую самописную библиотеку функций, которая накопилась у вас за годы разработки? Почему бы и нет, конечно же, она полностью подходит под определение фреймворка. Используя её, вы получаете значительное упрощение в разработке дальнейших проектов. И вместе с тем, получаете ряд ограничений (периодически возникает необходимость добавлять в существующие библиотеки новые функции, чтобы их снять).

Можно ли назвать фреймворком такие системы как, например, WordPress или Joomla? Можно! Потому что как правило в них кроме собственно «админки» есть достаточно неплохой внутренний набор функций для работы с данными, шаблонами, запросами и прочее.

Я бы сказал, что CMS сама по себе — это на самом деле часть фреймворка, а именно — та её часть, которая упрощает нам работу с данными, с контентом. Поэтому WordPress на мой взгляд было бы правильнее назвать «фреймворк со встроенной CMS».

Для чего я затеял написание этого философского поста? Для того, чтобы показать, что фреймворк — штука более всеобъемлющая, чем это принято считать. А кроме того, если вашей целью является скорейшее получение результата, то следует использовать фреймворки, причём не свои костыльные, а уже написанные и отточенные кем-то.

Подписаться
Уведомить о
guest
12 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Тимур Макакенко
Тимур Макакенко
10 лет назад

CMS — система управления сайтом ,это не фреймворк ,хватит ахинею писать .Фреймворк может быть частью CMS ,так как очень часто отдельные его части пишутся не на чистом PHP ,нужно понимать ,что фреймворк это просто набор готовых решений .
Фреймворк это куча кирпичей ,сайт здание ,вы рабочий .С фреймворком возможностей больше ,cms как правило предопределяет направление .
На фрейм ворках пишут CMS ,но на CMS нечего не напишешь это просто система с ядром .
Это две разные вещи ,да корень один — php ,но сделать на WordPress ,скажем тоже что на зенде нельзя.

Алексей Хайдуков
10 лет назад
Ответить на  Тимур Макакенко

Типичное мнение человека, который не читал эту статью.
Фраза «С фреймворком возможностей больше, cms как правило предопределяет направление» мягко говоря не совсем точна. Если вы знаете, например, WordPress, и сравните его с Zend Framework, то для вас становится очевидно, что свободу действий ограничивает именно ZF, где всё непременно должно быть разложено по полочкам, что для WordPress не так, ибо он предоставляет в наше распоряжение CMS и весьма гибкий фреймворк для работы с базой данных и событиями, который можно использовать как угодно и для чего угодно. Сейчас трудно сказать о том, какой сайт нельзя было бы реализовать на базе WP.

Alex Denisov
10 лет назад
Ответить на  Алексей Хайдуков

WordPress это даже не CMF. WordPress создан как платформа для контента.

10 лет назад
Ответить на  Alex Denisov

А разве не может платформа для контента иметь внутри достаточно мощный фреймворк? Вам не кажется, что популярность WordPress завоёвана не его свойствами как «платформы для контента», а именно тем, как он устроен внутри?

Тимур Макакенко
Тимур Макакенко
10 лет назад
Ответить на  Алексей

Да почти в каждой cms есть фреймворк ,что с этого?

Тимур Макакенко
Тимур Макакенко
10 лет назад
Ответить на  Алексей Хайдуков

Если все было бы так ,то не было бы спроса на фрейм ворки ,другие cms и вообще зачем писать что-то на php?Если есть альтернативы ,значит есть спрос который рождает предложения ,не было бы спроса не было бы предложений ,вот и все.
А убедить кого-то что ванючий word press царь и бог веб разработки ,как инструмент затея плохая.

10 лет назад
Ответить на  Тимур Макакенко

Уверен, что ваш ароматный ZF можно просто вставить внутрь WordPress как библиотеку и всё прекрасно будет работать, логика будет на ZF, а работа с данными — на WP.
Абсолютно никого не хочу убеждать, просто высказал своё мнение. Знаю приличное количество фреймворков и точно знаю, что ни один из них сейчас по популярности с WordPress не сравнится. WP просто подмял под себя всю индустрию сайтостроения.
Пытаюсь разобраться в причинах этого и у меня уже есть некоторые догадки, о которых я напишу в будущих статьях.

10 лет назад
Ответить на  Тимур Макакенко

Сделать что-то на WordPress что-то необычное гораздо проще, чем на зенде. Хотя бы потому, что WordPress очень гибкий внутри, если хочется, можно вообще на Plain PHP писать и не пользоваться встроенными функциями WP. А на Plain PHP как известно можно сделать абсолютно всё.

Тимур Макакенко
Тимур Макакенко
10 лет назад
Ответить на  Алексей

или на оборот ,суть не в этом.
Все это инструменты ,для каждой задачи лучше те или иные .
Вы же все сейчас пытаетесь втереть ,что раз перфоратором быстрее штробить бетон чем стамеской с молотком ,то он лучше,да но стамеской с молотком лучше вырезать под петли ,когда перфоратором этого делать никто не будет.
Начнем с того ,что фреймворк это почти php ,как и следует из статьи .
Человек может написать фреймворк на PHP с помощью которого сможет написать DM ,а есть примеры DM на wordpress ?

10 лет назад
Ответить на  Тимур Макакенко

Да вовсе я и не настаиваю. Суть статьи была в том, что фреймворк — это «рамка», основа творчества, некая база, с которой можно вырастить проект. В этом и суть. WordPress тоже является такой основой, потому вторая мысль статьи в том, что понятие фреймворка запросто можно применить и к WordPress.
А что такое DM ?

Тимур Макакенко
Тимур Макакенко
10 лет назад
Ответить на  Алексей

Display meneger ,более того есть даже и рабочие окружение на php . Joli OS тому доказательство .

10 лет назад
Ответить на  Тимур Макакенко

Есть вещи, для которых PHP в принципе не годится. Например, клиентские приложения. Да и системные под вопросом. Просто есть другие технологии, более удобные. У PHP множество ограничений. И я вообще не понимаю какой смысл писать на PHP дисплейный менеджер или операционную систему. Это же полный бред.