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

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

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

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

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

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

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

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

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

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

Подписаться
Уведомить о
guest

 

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

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

Алексей Хайдуков

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

Alex Denisov

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

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

Тимур Макакенко

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

Тимур Макакенко

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

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

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

Тимур Макакенко

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

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

Тимур Макакенко

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

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