Что такое CodeIgniter и для чего он нужен

CodeIgniter — популярный MVC фреймворк с открытым исходным кодом, написанный на языке программирования PHP, для разработки полноценных веб-систем и приложений. Разработан компанией EllisLab, а также Риком Эллисом и Полом Бурдиком.

Старая версия CodeIgniter’а (CodeIgniter 2.x), как и более ранние версии, распространяются под проприетарной лицензией в стиле Apache/BSD, однако текущая ветвь CodeIgniter 4 перелицензирована под MIT.

Ссылка: https://codeigniter.com/

Что такое Laravel и для чего он нужен

Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC. Laravel выпущен под лицензией MIT.

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

Ссылка: https://laravel.com/

Что такое Yii и для чего он нужен

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

В китайском языке Yii означает «простой и прогрессивный», также Yii представляет собой акроним от «Yes It Is!».

Фреймворк отлично документирован: документация есть ко всему и на нескольких языках (русский, украинский, английский, испанский и другие).

Ссылка: https://www.yiiframework.com/

Профайлеры Drupal

Devel

Упрощает разработку, отладку и оптимизацию Drupal-сайтов. Включен по умолчанию в Drupal 8/9.

Ссылка: https://www.drupal.org/project/devel

WebProfiler

Отображает общее время построения страницы и какие блоки в ней используются. Показывает общее число SQL запросов, время их время выполнения и само содержимое запросов. Не показывает сколько по времени выполнялась та или иная PHP функция.

Ссылка: https://www.drupal.org/project/webprofiler

XHProf

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

Ссылка: https://www.drupal.org/project/xhprof

Mix

Mix предоставляет ряд необходимых функций, которые нужны почти каждому проекту, но не включены в ядро ​​Drupal. Наиболее интересная функция включение режима разработки. Она позволяет отключить кеши Drupal и включите отладку twig без редактирования файлов настроек *.php и *services.yml.

Ссылка: https://www.drupal.org/project/mix

Профайлеры PHP

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

Перечислим профайлеры PHP живущие сами по себе и не зависящие от CMS/CMF.

1) XDebug ( https://xdebug.org/ )

Плюсы:

  • самый популярный, большое сообщество
  • бесплатный
  • интеграция с PHPStorm
  • возможность ставить точки остановка

Минусы:

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

В качестве графического интерфейса может быть дополнительно установлен Webgrind (веб морда https://github.com/jokkedk/webgrind ), либо WinCacheGrind (для винды https://github.com/ceefour/wincachegrind ), либо KCachegrind (оболочка kde для линукс).

2) XPHrof ( https://github.com/longxinH/xhprof#installation )

Плюсы:

  • легковесный, практически не даёт overhead’а, можно включать на проде
  • бесплатный
  • прост в настройке
  • позволяет посмотреть сколько раз была вызвана функция и сколько она выполнялась по времени, а также родительскую функцию и дочернюю

Минусы:

  • слаб в визуализации данных

В качестве графического интерфейса может быть дополнительно установлен XHGui (веб морда https://github.com/perftools/xhgui ).

Младше версии PHP 7 ставится скорее всего путем ручной сборки линуксовых пакетов (под debian скорее всего пакет php5-dev ушел в архив). От версии PHP 7 форки https://github.com/tideways/php-xhprof-extension и https://github.com/perftools/xhgui ставятся без проблем.

3) Z-Ray ( http://www.zend.com/en/products/server )

  • платный
  • похоже заблочен в РФ

4) Blackfire ( https://www.blackfire.io/ )

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

Является переписанным XHProf.

5) Tideways ( https://tideways.com/ )

Дальнейшее развитие XHProf, из той же серии что и предыдущий — много плюшек, но стоит денег.

6) SPX ( https://github.com/NoiseByNorthwest/php-spx )

  • бесплатный
  • поставляется с веб-интерфейсом
  • хорошо визуализирован, помогает разобраться как работает приложение

Чаще всего используется рядом с XDebug и XHProf. Автор приложения считает что расширение не готово к использованию в продакшене, поэтому лучше устанавливать его только локально и на тестовые сервера.

7) Pinda ( http://pinba.org/ )

Сервис для получения realtime-статистики от работающих приложений без накладных расходов на её сбор. Может использоваться для пробрасывания данных в Zabbix.

Инструменты необходимые для обновления модулей Drupal с версии 8 на 9

В Drupal 9 реализованы все возможности Drupal 8 и два раза в год продолжаются постоянные инновации, добавляя новые функции.

Это означает, что Drupal 9 равен Drupal 8 за вычетом устаревших API. Таким образом обновление не требует капитального ремонта инфраструктуры вашего сайта.

Поговорим  об инструментах которые потребуются для подготовки к обновлению Drupal.

Upgrade Status

О готовности Drupal 9 нельзя говорить без упоминания модуля Upgrade Status. Это первостепенный инструмент, необходимый для успешного обновления.

Он выполняет практически все основные функции, необходимые для подготовки к обновлению.

Предлагает вам обновиться до текущей версии

Проверяет, используете ли вы версию Drupal, поддерживающую обновление.

Предлагает вам проверить системные требования

Проверяет, соответствует ли ваша система системным требованиям следующей основной версии.

Предлагает вам сосредоточиться на проектах

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

Предлагает вам решать другие проблемы совместимости

Вы могли подумать, что этих трех должно быть достаточно, но это еще не все. Существует множество проблем совместимости с Drupal 9, которые необходимо решить с помощью запуска phpstan. И upgrade status тоже может это сделать.

Upgrade Status также может интегрироваться с drush. Вам нужно будет установить его с помощью Composer.

Drupal Check

Следующим важным инструментом для перехода на Drupal 9 является модуль Drupal Check. PHPStan был разработан как инструмент статического анализа, который может запускать автономный исполняемый файл PHP из командной строки.

Проверка сообщит обо всем устаревшем коде, который используется на вашем сайте.

Для беспрепятственного обновления ваша система должна быть на 100% совместимой с Drupal 9.

Но это похоже на модуль Upgrade Status.

Да. Есть некоторое сходство между Drupal Check и Upgrade Status в том, что обе они работают над установлением совместимости с Drupal 9. Однако я бы сказал, что Upgrade Status имеет гораздо больший масштаб.

Upgrade Rector и Drupal Rector

Вы бы предпочли использовать автоматизированный механизм для обнаружения нежелательных устаревших API перед обновлением D9 или предпочитаете делать это вручную? Я почти уверен, что ваш ответ будет напоминать мой и будет первым выбором.

И эти автоматические проверки устаревания и исправления кода идут вместе с Upgrade Rector. Это также позволяет вам вносить исправления как в собственные, так и в собственные проекты с помощью предложений. По сути, Upgrade Rector — это интегрированный пользовательский интерфейс Drupal для Drupal Rector.

Итак, что такое Drupal Rector?

Прежде чем я перейду к Drupal Rector, давайте немного разберемся с историей Rector. Это инструмент, который автоматизирует обновление кода PHP.

Drupal Rector взял эту концепцию и реализовал ее на Drupal. Drupal Rector обновляет устаревший API, используемый в Drupal.

IDE

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

Почему это важно?

Для этого есть две причины;

  • Один из них связан с видимостью. Если ваша IDE понимает устаревшие версии, они будут очень заметны даже в процессе разработки.
  • А во-вторых, он отменяет вызовы устаревших методов и дополнительно информирует вас о правильном вызове.

PHPStorm один из примеров инструмента IDE, который очень удобен при рассмотрении вопроса об обновлении до Drupal 9.

Module Upgrader

Module Upgrader — это инструмент, более ориентированный на проекты, которые находятся на Drupal 7. Следуя сценарию командной строки с возможностью сканирования источника модуля D7, он может выделить код, несовместимый с Drupal 8 или 9.

Как это работает?

  • Он отмечает код, который необходимо обновить;
  • При необходимости он выделяет изменения API;
  • Он также может автоматически преобразовывать код D7 в D8 или 9.

Что в итоге?

У вас останутся обновленные модули, в коде которых не будет устаревших API. Как только это произойдет, вы станете на один шаг ближе к фактическому обновлению до Drupal 9. Помните, что модуль Drupal 8 без каких-либо устаревших рекомендаций является достаточно хорошим модулем Drupal 9, потому что единственное различие между ними — это устаревшие API.

Migrate Tools

Название достаточно ясное, Migrate Tools — это модуль, который предоставляет дополнительные инструменты для запуска, а также управления миграциями на Drupal 8.

Он работает с Drush и предоставляет команды для удобного управления.

  • Вы можете увидеть список миграций и их статус;
  • Вы можете выполнять операции импорта и отката;
  • Вы можете легко остановить работающую операцию;
  • Вы можете перечислить поля, доступные для сопоставления, и просмотреть сообщения, относящиеся к миграции.

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

Migrate Plus

Модуль Migrate Plus поставляется с расширениями основных функций и примерами инфраструктуры миграции. Его можно легко реализовать в виде объектов конфигурации, которые адаптируются с точки зрения загрузки, модификации и последующего сохранения.

Вывод

Теперь у нас есть необходимые инструменты, которые потребуются для запуска процесса обновления.

Получение списка всех файлов из каталога на PHP

Как лучше всего получить все файлы из одного каталога с помощью PHP? Поможет функция scandir():

$path  = '/tmp';
$files = scandir($path);

Следующий код, при помощи функции array_diff(), удалит ссылки на текущий . и родительский .. каталоги из возвращаемого массива из scandir():

$path  = '/tmp';
$files = array_diff(scandir($path), array('.', '..'));

Что такое MODX и для чего он нужен

MODX (читается «мо́дэкс») — это бесплатная профессиональная система управления содержимым (CMS) и фреймворк для веб-приложений, предназначенная для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым) сайтов.

MODX распространяется бесплатно по лицензии GPL с открытым исходным программным кодом (Open Source). Это означает, что систему MODX может использовать каждый: как для личного использования, так и для коммерческого распространения сайтов, построенных на данной системе управления.

MODX написана на программном языке PHP и использует для хранения данных СУБД MySQL или MS SQL. Система управления MODX может быть установлена на большинстве веб-серверов (например, таких как IIS, Apache, Lighttpd, Nginx и Zeus), а контрольная панель системы (или админ-зона) работает практически во всех современных браузерах.

Ссылка на ресурс: https://modx.com/