У Laravel есть тысячи готовых пакетов. Так как OctoberCms построен на Laravel, то его пакеты мы тоже можем использовать. Использование пакетов аналогично, но их подключение требует некоторых действий.
Вы можете создать один плагин для всех пакетов, которые будете использовать в проекте или для каждого плагина проделывать одни и те же шаги.
Переходим в папку с плагином в консоли и установим сам плагин. Я для примера буду устанавливать SDK для СДЕК, поэтому как сказано в инструкции буду устанавливать командой
composer require sanmai/cdek-sdk
В plugin.php доьавим функцию
public function bootPackages()
{
// Get the namespace of the current plugin to use in accessing the Config of the plugin
$pluginNamespace = str_replace('\\', '.', strtolower(__NAMESPACE__));
// Instantiate the AliasLoader for any aliases that will be loaded
$aliasLoader = AliasLoader::getInstance();
// Get the packages to boot
$packages = Config::get($pluginNamespace . '::packages');
// Boot each package
foreach ($packages as $name => $options) {
// Setup the configuration for the package, pulling from this plugin's config
if (!empty($options['config']) && !empty($options['config_namespace'])) {
Config::set($options['config_namespace'], $options['config']);
}
// Register any Service Providers for the package
if (!empty($options['providers'])) {
foreach ($options['providers'] as $provider) {
App::register($provider);
}
}
// Register any Aliases for the package
if (!empty($options['aliases'])) {
foreach ($options['aliases'] as $alias => $path) {
$aliasLoader->alias($alias, $path);
}
}
}
}
Там же в boot() пропишем:
$this->bootPackages();
Тем самым задействуем новую функцию.
Ну и в шапку добавим:
use Config;
use Illuminate\Foundation\AliasLoader;
Далее создаем в папке плагина папку config, а в ней config.php чтобы получился путь config/config.php и вставляем туда код (пример):
<?php
return [
// This contains the Laravel Packages that you want this plugin to utilize listed under their package identifiers
'packages' => [
'sanmai/cdek-sdk' => [
'config_namespace' => 'Cdek',
],
],
];
Вот и все готово! Теперь в своем плагине достаточно в шапке подключить пакет как это написано в самой инструкции к пакету. Например:
use CdekSDK\Requests;
или вот пример проще
use phpQuery;
Опубликовано 3 марта 2021 г. в категориях: October CMS Winter CMS
Если Вам необходимо внедрить данную разработку на свой проект, свяжитесь со мной, обсудим цену и срок.