WordPress это фреймворк или CMS?

Разработчики часто спорят о фреймворках. И многие думают что WordPress это не фреймворк. А так ли оно на самом деле?

А что такое вообще этот ваш фреймворк?

Давайте глянем в википедию:

Фре́ймворк (иногда фреймво́рк; англицизм, неологизм от framework — остов, каркас, рама, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

Капитан Очевидность

В целом для 50% людей этого уже должно хватить, из определения мы понимаем что да, WP это фреймворк.

Но вот почему 99% PHP кодеров думают что это не так?

WordPress — это не фреймворк, а CMS или даже того хуже — это конструктор!

В целом такое утверждение верно тоже. Да, мы можем использовать WordPress как конструктор. Мы даже можем не писать код. Использовать стратегии NoCode, ZeroCode & LowCode. Это так называемые подходы основанные на конфигурации, когда ты можешь управлять всем проектом онлайн без изменения кода.

Плохо это или хорошо?

  • Для бизнеса это хорошо — сокращаются затраты в 10х раз. В 99% случаев.
  • Для программистов это плохо — во первых они остаются без работы, во вторых такой системой управлять сильно сложнее, надо уметь думать, а умеют это не многие.

И от сюда становится понятно почему программисты хаят вордпресс — это обычный первобытный рефлекс выживания. Надо быть против того кто отбирает твой хлеб. WP отбирает хлеб у программистов и потому его надо обругать.

Можно было бы так подумать, но там есть нюансы…

Книга «WordPress как Framework»

Есть даже такая книга у много-уважаемого издания, в которой описывается как работать с WP как с фреймворком.

Правда в том что во первых это возможно. А во вторых есть множество ситуаций где это еще и нужно.

Выше я описал что WP часто используют в контексте подхода — ZeroCode. Но программисты чаще понимают подход code-driven.

Важно эти подходы отличать. Они очень разные, даже если в любом случае мы работаем с WP.

Иногда нам удобнее управлять системой через данные и контент, и чтобы с этим мог работать даже новичек, который код в глаза не видел.

Ну а если мы работаем с большими системами, где множество инсталяций и надо ими всеми управлять из 1 точки — и эта точка — код. В этом контексте подход code-driven становится сильно эффективней.

И вот тут типовой WordPress без настроек — может играть в минус. Вы делаете 1 фичу, а потом вам надо скакать по 50 сайтам и везде обновлять опции. Это тяжко. И можно понять программистов которые тут начинают рыдать.

Еще минус — когда кто то что то поменял в коде — мы это видим по истории, а если поменяли в БД — увидеть историю не всегда получается. Ищи потом причины проблемы.

Но это все лишь проблема отсутствия знаний. Важно уметь работать с WordPress как с ZeroCode и data драйвен — если у вас например 1 проект. Это очень эффективно. Но если у вас на 1 код посажено 100 проектов — важно уметь работать с WordPress как с фреймворком. И это тоже важно. Но умеют не многие.

Книга в помощь.

А вот еще PHPStorm

Тоже там разработчики думают что WordPress это фреймворк. Потому что включили его в соответствующий раздел.

Совпадение? …

Все фигня. ВордПресс не фреймворк, потому что он кривой

Есть и такое утверждение. Вот программисты они же умные, они выучили тучу теорий про MVC, SOLID, разные там паттерны знают. Особенно те про которые часто пишут в этих ваших Интернетах.

А вордпресс он не такой! Я вот привык к Ларавел/Симфони/Zend (нужное подчеркнуть), а тут все не так кака тама!

В общем такое бывает у программистов которые болеют синдромом Утенка.

Смысл в том что большинство теорий, книг и статей они про классический ООП.

А у WordPress применяется ООП компонентного типа, да еще хорошо приправлено механиками из AOP & EDA. Подробнее тут.

В базовых фреймворках типа Laravel или Symfony такие штуки применяются редко, потому что обычно там все заточено мод микро сервисы и минимальный функционал.

Увидеть там архитектуру заточенные под сложные задачи и большой функуционал — это редкость. Речь идет про проекты где работают от 100 разработчиков.

Для тех кто такого не видал можно глянуть FreeScout

  • ребята реализовали AOP через Laravel Modules
  • сделали EDA через Eventy

Им почти удалось повторить WordPress на базе Laravel.

Но это исключение. В целом 99% кодеров никогда такого даже близко не видели.

А в WordPress это все и сразу и в большом количестве.

Надо понимать что у большинства не окрепших умов взрываются мозги и первичный рефлекс начинает им говорить что с WP что то не так. Он не фреймворк! ))

Однако доля правды тоже есть

Фреймворки от природы заточены под код, и ими движут желания программистов — чтобы код был красивый, чтобы можно было в пару тыков авто тесты написать, чтобы миграции легко строились, очереди в фоне работали понятно и прочее.

В WP это все тоже можно делать, оно в том или ином виде практикуется, но вот четких понятных решений нет. И каждый крупный проект изобретает тут свои решения.

Однако это не причина говорить что вордпресс это не фреймворк. Правильнее говорить так что это фреймворк заточенный под нужды CMS без кода, и каких то готовых инструментов под узкие задачи у него нет. Придется изобретать самим. Для многих это проблема. Потому есть масса случаев когда действительно лучше брать что то типа Ларавел или Симфони, потому что в тех фреймворках есть ряд инструментов под задачи типа узких горлышек.

Итого

В общем фреймворк оно или не фреймворк — это не вопрос про вордпресс. Это вопрос про то кто и как его использует.

Можно использовать как конструктор — и в целом не заморачиваться. Не надо знать архитектуру, паттерны кода и прочие умные слова — тык тык и работаем.

Можно использовать как фреймворк — но тогда надо знать что такое OOP 3х типов, что такое AOP? EDA? Чем отличается SOLID от GRASP?

А еще надо знать как правильно делать авто тесты.

И вот тогда можно будет сказать что WordPress это фреймворк, а вы тот кто смог это осилить.

Фото аватара
Макс

Моя специализация включает в себя создание функциональных и эстетически привлекательных сайтов, которые удовлетворяют потребностям и целям каждого клиента.
Я предпочитаю использовать WordPress и Nocode-подход в своей работе, потому что они обеспечивают гибкость и эффективность в создании сайтов.

Статей: 2

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *