Для получения дополнительной информации, подобной этой, следуйте Лучшая cms в Твиттере и подпишитесь на наш блог .
Представьте себе ситуацию, с которой вы, как разработчик, можете столкнуться много раз в своей карьере. Клиент, друг, начальник или кто бы то ни было приходит к вам с просьбой добавить блог на их существующий веб-сайт. У них есть несколько требований:
- Блог должен разрешать категории, теги, загрузку изображений и другие общие функции ведения блога
- Это должно быть достаточно просто, чтобы любой сотрудник их организации знал, как им пользоваться и публиковать новый контент
- Блог должен находиться по адресу www.oursite.com/blog
- Блог должен соответствовать внешнему виду и ощущениям их текущего сайта
- Их текущий сайт построен с использованием PHP, и они хотели бы использовать ту же технологию
Учитывая этот сценарий, вы можете выбрать несколько маршрутов. Тем не менее, важно, чтобы вы сочетали простоту использования со временем, необходимым для запуска и эксплуатации. В конце концов, у этого проекта, как и у большинства, есть крайний срок и бюджет.
Этот конкретный клиент также довольно нетехничен, поэтому система должна быть надежной и требовать очень небольшого технического обслуживания. Как только он будет создан, они захотят быть настолько самодостаточными, насколько это возможно. Давайте рассмотрим некоторые варианты!
WordPress
Часто это первая система, о которой вы можете подумать, когда дело доходит до добавления блога на сайт. В нем множество функций и плагинов, он широко используется и понятен, и он бесплатный. Это даже PHP, что было бы еще одним плюсом для клиента! Однако здесь все еще есть немало проблем.
Первая проблема заключается в том, что для развертывания установки WordPress требуется постоянное техническое обслуживание и исправления безопасности. Учитывая нетехнический характер клиента, это не идеально. Затем клиент должен не только быть в курсе различных обновлений, но и решать любые проблемы, возникающие в результате обновления их установки. В первый раз, когда с этим что-то пойдет не так, они вернутся к вам с просьбой это исправить.
Выбор этого маршрута также потребует создания и оформления темы, соответствующей текущему внешнему виду сайта клиента. Это означает, что всякий раз, когда клиент обновляет свой существующий сайт, вам также необходимо потратить время на обновление этого отдельного сайта. Это дополнительное раздражение как для вас, так и для клиента. Кроме того, теперь вам нужно не только беспокоиться о внутреннем аспекте кода, но и заниматься дизайном и разработкой внешнего интерфейса.
Таким образом, WordPress, безусловно, предлагает любую функциональность, необходимую для блога. Тем не менее, он также поставляется с некоторым собственным багажом, чтобы быть осторожным в том, чтобы сделать этот вариант не таким простым и сухим. Дополнительные функции и возможности в этом случае не только добавляют дополнительную сложность в целом, они не нужны нашему клиенту и, скорее всего, приведут только к дополнительным проблемам для решения.
Сверни Свой Собственный
Первым очевидным недостатком такого подхода является время. Хотя это, безусловно, позволило бы обеспечить большую гибкость в работе блога, это также потребовало бы разработки и поддержки интерфейса, достаточно простого для использования всеми сотрудниками организации клиента. Теперь вам нужно не только беспокоиться о создании движка блога, но и о создании интерфейса для CMS для управления им.
Кроме того, вам придется определить, как и где хранить носители. Если у клиента еще нет CDN для этого, теперь вам нужно настроить и объяснить им, как им управлять. Если у них есть CDN, вам нужно потратить время на получение доступа и понимание того, где в их CDN лучше всего хранить ваш контент.
Зачем изобретать велосипед, когда уже существует множество вариантов с открытым исходным кодом для движка ведения блогов?
Используйте Проект С Открытым Исходным Кодом
Использование существующего проекта обычно является отличной идеей, которая экономит много времени на подобных проектах. Однако, хотя на первый взгляд это решение кажется очевидным, существуют и другие проблемы.
Зачастую настройка и установка этих систем также относительно просты для разработчика. Однако даже при использовании проектов с открытым исходным кодом требуется техническое обслуживание. С течением времени зависимости этих проектов могут устареть или стать небезопасными. Они также могут быть несовместимы с текущими версиями программного обеспечения, которое вы или ваш клиент уже используете.
Если клиент запрашивает обновление своего блога, которое выбранная вами библиотека не поддерживает, вам также может потребоваться потратить время на выяснение того, как работает код для добавления в него.
Лучшие решения
С помощью такого решения, как Bettercms, вы сможете решить многие из описанных ранее сложностей. Никакой конфигурации серверов не требуется, никаких обновлений не требуется, и интерфейс уже существует. Вся сложность настройки любой инфраструктуры для вашего блога устранена.
Вместо этого вы можете проводить свое время гораздо более продуктивно. Улучшенная cms может быть добавлена в ваш существующий проект с помощью простого пакета Composer. Затем просто начните просматривать обширную документацию, чтобы ваш блог был интегрирован с сайтом.
composer require buttercms/buttercms-php:2.2.0 (or current version)
В дизайне блога могут использоваться уже существующие стили и ресурсы, которые в настоящее время использует сайт клиента. Когда их основной сайт обновляется, их блог также обновляется с помощью той же кодовой базы.
Извлечение контента для блога можно выполнить всего с помощью пары строк кода. Ниже приведен пример того, как это можно было бы сделать с помощью Silex, микро-фреймворка PHP, основанного на компонентах Symfony.
Во-первых, при настройке вашего приложения вы должны настроить любые маршруты, которые будет использовать блог, а также экземпляр лучшего клиента cms.
use ButterCMS\ButterCMS;
Затем в действии контроллера, привязанном к вашим маршрутам, получение сообщений в блоге может быть выполнено с помощью очень небольшого количества кода.
namespace MyBlog;
use Symfony\Component\HttpFoundation\Request;
use Silex\Application;
class BlogController {
public function listAction(Request $request, Application $app, $category) {
$client = $app['butter_cms']);
$posts = $client->fetchPosts([
'category_slug' => $category,
'page' => $request->query->get('page'),
'page_size' => 10,
]));
return $app['twig']->render('list.html', ['posts' => $posts]);
}
}
Наконец, на ваш взгляд, вы бы просто перебрали сообщения, чтобы отобразить их на странице с помощью Twig.
{% for post in posts %}
{{ post.title }}
{{ post.body }}
{% endfor %}
По сути, за пять или менее строк кода вы теперь запустили и запустили весь свой блог. Все функции, необходимые вашему клиенту, уже встроены для вас. Разбивка на страницы, поддержка категорий, быстрые ответы – все, о чем просил ваш клиент, уже существует.
Резюме
Разработчики часто сталкиваются с ситуацией, когда речь заходит о программном обеспечении, а не о покупке. Либо вы можете приобрести доступ к библиотеке кода для себя, либо вы можете использовать что-то готовое бесплатно. У каждого есть свои плюсы и минусы. Такое решение, как ButterCMS, и преимущества, которые оно предоставляет, часто оправдывают затраты на экономию времени и сложности, особенно в долгосрочной перспективе.
Это было первоначально опубликовано здесь .
Оригинал: “https://dev.to/rogerjin12/options-for-adding-a-blog-to-a-php-app”