Многие разработчики WordPress жаждут таких функций, как Eloquent, Blade, Service Container и Service Provider, которые помогут им создавать мощные плагины. Falcon здесь, чтобы изменить правила игры и предоставить вам эти возможности.
Обратите внимание: этот плагин предоставляет ряд услуг и не предназначен для использования в качестве основы для создания новых плагинов.
Минимальная версия PHP: 8.2.
Создать каталог: в папке wp-content , если папка mu-plugins не существует, создайте ее. Поместите в него папку falcon-base-services .
Создайте файл загрузчика. В корне папки mu-plugins создайте файл PHP с выбранным вами именем и добавьте следующий код:
<?php
require ' falcon-base-services/falcon-base-services.php ' ; Обратите внимание, что содержимое папки mu-plugins не требует активации в администраторе WordPress и выполняется раньше всех остальных плагинов. Кроме того, WordPress не сканирует папки внутри mu-plugins если это явно не указано.
Установите зависимости: откройте терминал в папке falcon-base-services и выполните следующую команду:
composer installЕсли вы не установили Composer, вы можете скачать и установить его по этой ссылке.
Теперь плагин готов к использованию. Давайте рассмотрим его возможности и способы их использования.
Если вам нужно перевести сайт в режим обслуживания, просто переименуйте файл maintenance.example.php в папке storage в maintenance.php . Вы также можете редактировать содержимое файла по мере необходимости.
Элементы, упомянутые в файле .env.example , важны. Переименуйте файл в .env .
Вы можете установить свои переменные в файле .env и использовать их в любом месте вашего кода следующим образом:
$ _ENV [ ' item ' ];
//or
env ( ' item ' )Чтобы установить элемент в глобальной переменной $_ENV, вы можете использовать:
setEnv ( $ key , $ value ); Вы также можете использовать в своем проекте файлы конфигурации, которые возвращают массив. Поместите файл конфигурации в папку config и получите доступ к нужным значениям с помощью функции falconConfig($file, $key = null, $folder_path = null) .
$file : имя файла конфигурации.
$key : Ключ запрошенного массива. Если значение равно нулю, возвращается все содержимое файла.
$folder_path : по умолчанию путь к файлам конфигурации находится в папке конфигурации. Если вы хотите иметь в своем проекте новые конфигурации, вы также можете указать путь к новой папке.
Плагин использует мощный сервисный контейнер с возможностями автоматического подключения.
Службы Singleton: зарегистрируйте службу Singleton, используя:
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);Службы, не являющиеся синглтонами. Зарегистрируйте службу, не являющуюся синглтоном, используя:
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);Использование замыканий. Вы также можете использовать замыкания:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; }); Использование служб. Используйте метод get для получения служб:
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);Разрешение методов: разрешите метод из класса, используя:
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );Это автоматически разрешит любые зависимости, необходимые как для класса, так и для метода.
Чтобы создать поставщика услуг, создайте класс в папке app/providers и расширьте класс ServiceProvider . При необходимости используйте методы register и boot . Затем добавьте адрес провайдера в файл providers.php , расположенный в папке bootstrap .
Все таблицы WordPress по умолчанию доступны в виде моделей в папке app/Model . Таблицы WooCommerce будут добавлены в ближайшее время. Для взаимодействия с этими таблицами вы можете использовать как мощный Query Builder, так и Eloquent.
( new FalconBaseServices Model Post ())-> published ()-> with ( ' author ' )-> get (); falconDB ():: table ( ' wp_posts ' )
-> where ( ' post_status ' , ' publish ' )
-> leftJoin ( ' wp_users ' , ' wp_posts.post_author ' , ' = ' , ' wp_users.ID ' )
-> select ( ' wp_posts.* ' , ' wp_users.user_nicename ' )
-> get (); Если вы хотите использовать новую таблицу в качестве модели, создайте ее класс, расширив класс FalconBaseServicesModelBaseModel . Если таблица не использует префикс по умолчанию, установите $with_prefix значение false:
protected $ with_prefix = false ;Правила и использование моделей и Query Builder/Eloquent точно такие же, как в документации Laravel.
По умолчанию в качестве шаблонизатора используется Blade, который немного отличается по использованию от стандартного. Обратите внимание на пример:
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render (); Вы также можете использовать Twig. Класс, производный от интерфейса app/Services/TemplateEngine/Template.php доступен по пути app/Services/TemplateEngine/Implements/Twig.php . Просто добавьте Twig в плагин через Composer, а затем отредактируйте файл app/Providers/TemplateServiceProvider.php . Использование аналогично приведенному выше примеру.
Чтобы использовать регистратор, используйте falconLogger():
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]); Если вы хотите, чтобы ProcessIdProcessor , GitProcessor и MemoryUsageProcessor были включены в журнал, установите для связанных элементов в файле .env значение true.
Чтобы использовать электронную почту, вы можете использовать falconEmail():
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null ); Для получения дополнительной информации о том, как использовать электронную почту, обратитесь к файлу app/Services/Sender/Implements/Email/PHPMailer.php .
Приятного кодирования!