Многие разработчики 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
.
Приятного кодирования!