Статьи

WordPress как платформа

WordPress является одной из самых популярных систем управления контентом (CMS) с точки зрения пользовательской базы и простоты доступа. Многие известные сайты с богатым контентом используют WordPress в качестве бэкэнда, включая саму SitePoint. Регулярные обновления, обширное сообщество, отличный форум поддержки, богатая документация и многие другие факторы позволили WP превзойти своих конкурентов.

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

Существуют различные аспекты, которые принимаются во внимание перед выбором основы для веб-разработки. В этой части мы рассмотрим функции, которые предоставляет WP, если рассматривать его как среду веб-разработки.

Сообщество, Поддержка и Документация

WordPress имеет большое сообщество и активный форум поддержки. Будь то проблема с установкой, настройкой, разработкой или чем-то еще, все своевременно решается сообществом поддержки . WordPress Codex — это модерируемая сообществом вики, которая регулярно обновляется. Документация — это первое, что вам нужно при изучении любого нового языка или фреймворка, и кодекс предоставляет именно это. В то время как большинство, если не все, другие фреймворки также поддерживают эти функции, важно отметить, что WP тоже, поэтому не отстает.

Управление пользователями

WordPress имеет превосходный модуль управления пользователями, который заботится обо всех функциях, таких как регистрация и вход в систему, управление ролями пользователей, назначение возможностей различным ролям и создание новых ролей. Эта функциональность может быть дополнительно расширена с помощью плагинов, таких как Capability Manager, который также предоставляет все перечисленные выше функции, не беспокоясь о проблемах управления сеансами или безопасности.

Если мы говорим о других средах, большинство из которых предоставляют какое-то решение для управления пользователями — например, Yii предоставляет расширение управления пользователями, известное как Yii-User, и аналогично для инфраструктуры CodeIgniter, вы найдете панель управления пользователями под названием BackendPro, которую вы можете легко интегрировать в ваш проект CI.

Панель администратора

Кому не понравится их приложение с простой в использовании панелью администратора, с помощью которой можно управлять интерфейсным контентом? WP предоставляет готовую к использованию внутреннюю панель с большинством параметров, которые могут вам понадобиться. В дополнение к этому вы можете создавать свои собственные страницы настроек для широкого набора требований. Еще одно преимущество: вам вообще не нужно беспокоиться о стиле бэкэнда — WP поставляется с собственным набором стилей для панели бэкенда.

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

CRUD (Create Read Update Delete) Операция

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

Попробуем немного связать это с реальным миром. Что касается WordPress, все это пост. Книга — это пост, человек — это пост, а любая различимая сущность — это пост. WordPress называет их « Пользовательские типы сообщений» .

Давайте пока возьмем пример Книги. Если вы скажете WordPress, что вы хотите определить тип поста с именем «Книга» для своего приложения, вы автоматически получите все CRUD, связанные с ним.

  • Добавить / обновить книгу — это будет стандартный экран редактирования сообщений WordPress для добавления / обновления книг.
  • Просмотр / удаление книг — это будет страница со списком книг с возможностью удаления.
add_action (   'init' ,   'create_post_type'   ); 
     function create_post_type ()   { register_post_type (   'book' , array ( 
               'labels'   => array ( 
                  'name'   => __ (   'Books'   ), 
                  'singular_name'   => __ (   'Book'   ) 
               ), 
             'public'   =>   true , 
             'has_archive'   =>   true , 
             ) 
         ); 
     } 

Приведенный выше фрагмент кода выполняет всю магию, и операция CRUD генерируется для типа записи книги. Вам не нужно писать SQL-запросы для этого, скорее, сосредотачиваясь на бизнес-логике, делая разработку действительно быстрой.

Что касается других платформ, Yii доминирует с его очень простым в использовании генератором графического интерфейса пользователя CRUD, за которым следует модуль GroceryCrud для CodeIgniter и затем скаффолдинг в CakePHP . Правда, тщательная настройка CRUD-операций и отношений с базами данных по-прежнему остается за вами, но при стремлении к быстрому освоению и дальнейшему совершенствованию эти решения не имеют себе равных.

Загрузка и управление медиа

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

Функции изображений WordPress позволяют пользователям использовать загруженные изображения в любом месте внешнего интерфейса со всей гибкостью модификации с вашей стороны. Вы даже можете создать галерею изображений в фоновом режиме и отобразить ее в интерфейсном.

Если мы посмотрим за пределы WordPress, Symfony и Yii также предоставят классные расширения для управления мультимедиа и загрузкой файлов, но объективно, не такие богатые, как полностью сформированная CMS, такая как WordPress. Это занимает огромную часть ручной разработки вашего времени, что позволяет вам сосредоточиться в первую очередь на критически важных для бизнеса деталях.

Расширяемость и масштабируемость

С точки зрения разработчика, расширяемость и масштабируемость являются очень важной частью каждой среды. Хуки и фильтры — вот что делает WordPress мощной основой для разработки.

фильтры

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

  add_filter ( 'book_price' , 'custom_book_price' ); 
     function  custom_book_price ( $book_price ){ $book_price =  $book_price +   10 ; 
         return  $book_price ; 
     } 

Приведенный выше код добавит 10 долларов к цене каждой книги и отобразится в представлении. Фильтры присутствуют в каждом высококачественном современном каркасе и шаблонизаторе.

Крючки

Хуки — это не что иное, как вызовы пользовательских функций в определенных точках цепочки выполнения кода WordPress. Вы даже можете думать о них как о триггерах. Предположим, вы хотите получать уведомления по электронной почте, когда в вашем приложении создается новая запись. Для этого вы подключите пользовательскую функцию к стандартному publish_post WordPress publish_post .

add_action('publish_post','custom_mail_admin');

Теперь все, что вам нужно сделать, это реализовать функцию custom_mail_admin и она будет выполняться автоматически при публикации нового сообщения.

Hooks и Filters вместе — это мощный дуэт, и одна из главных причин успешного превращения WordPress в основу веб-разработки для многих компаний.

В определенной степени хуки поддерживаются во всех основных средах, но различаются по времени запуска. Очевидно, что фреймворк, такой как, например, Kohana, не будет иметь хука «publish_post», но может иметь хук «post-controller» (он имеет вид — в виде system.post-controller ), который выполняется после того, как контроллер закончил выполнять свое действие.

Маршрутизация URL и SEO дружественные URL

Очень важный параметр, если вы хотите создать приложение для новостей / контента или веб-сайт. Структура URL играет очень важную роль в SEO, как мы все знаем, и WordPress обладает мощной функцией постоянных ссылок, с помощью которой вы можете иметь различные типы постоянных ссылок для контента или страниц в зависимости от ваших требований.

Перезапись URL также играет важную роль в сложном веб-приложении, где ваш URL содержит много параметров GET, а URL становится слишком длинным и сложным. Как и многие фреймворки, WordPress предоставляет API Rewrite, с помощью которого вы можете поиграть со структурой URL и настроить ее в соответствии с вашими требованиями, хотя, правда, WP делает это невероятно удобным для пользователя способом.

Почти все фреймворки поддерживают маршрутизацию URL, среди которых Laravel предоставляет достойный удобный API маршрутизации, за которым следуют Yii , Zend , CakePHP и другие.

Кэширование

Если вы смотрите на высокопроизводительное приложение, обслуживающее миллионы пользователей, вам необходим механизм кэширования. WordPress имеет встроенный Transient API, который обеспечивает функциональность кэширования на уровне базы данных для использования в вашем приложении. Если вы ищете более продвинутый механизм кэширования со всеми элементами управления в вашей руке, то плагины, такие как W3 Total Cache, будут служить этой цели. Используйте этот способ для управления кешем без особых накладных расходов.

Опять же, большинство фреймворков поддерживают это. Некоторые примеры включают Yii и Laravel , оба из которых предоставляют очень простой механизм кэширования, возможно, лучше, чем WordPress, благодаря которому вы можете повысить производительность своего приложения.

Шаблоны

Шаблоны WordPress имеют дело с представлением вашего контента. Если вы знакомы с архитектурой MVC, вы можете связать шаблоны с представлениями. Одной странице может быть назначено несколько шаблонов. Таким образом, даже если данные одинаковы, стиль будет отличаться.

Рассматривая другие фреймворки, в Laravel и Phalcon встроены удивительные движки шаблонов, в то время как другие фреймворки также имеют свои собственные решения.

Как насчет MVC?

Это были все основные функции, которые делают WordPress полноценной средой разработки веб-приложений, если мы сравним ее с другими фреймворками на рынке, но как насчет MVC? В настоящее время почти каждый веб-фреймворк следует архитектуре MVC. Действительно, WordPress не следует этой архитектуре из-за специальной поддержки обратной совместимости со старыми развертываниями. Несмотря на это, прилагаются усилия, чтобы заставить WP следовать шаблону MVC — вы можете проверить WP MVC и Tina MVC .

Вывод

WordPress ни в коем случае не является заменой другим фреймворкам, но делает достойную альтернативу, предоставляя большинство, если не все функции, охватываемые уже популярными фреймворками. Одна вещь, о которой нужно беспокоиться, это ее производительность и накладные расходы из-за функций, которые вам могут не понадобиться для вашего конкретного приложения, но что касается развития функциональности в нем — WordPress действительно может конкурировать с некоторыми из лучших фреймворков, даже если он «просто» CMS.

Надеюсь, вам понравилось читать статью. Комментарии приветствуются!