mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-29 18:55:53 -04:00
- Move the PluginManager creation to a service. - Move plugin discovery to creation. - Create static discovery and namespaces variables in the PluginManager.php library - Refactor persistent namespace declarations - Refactor redundant code to private function. - Remove whitespace - Remove enable setting from MailchimpPlugin. That is handled by the PluginManager.php - Update Events.php to call the pluginManager service - Correct typo in enabled setting for BasePlugin to accurately reflect the database naming. Signed-off-by: objec <objecttothis@gmail.com>
99 lines
2.8 KiB
PHP
99 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace Config;
|
|
|
|
use App\Libraries\MY_Language;
|
|
use App\Libraries\Plugins\PluginManager;
|
|
use Locale;
|
|
use HTMLPurifier;
|
|
use HTMLPurifier_Config;
|
|
use CodeIgniter\Config\BaseService;
|
|
use Config\Services as AppServices;
|
|
use CodeIgniter\HTTP\IncomingRequest;
|
|
|
|
/**
|
|
* Services Configuration file.
|
|
*
|
|
* Services are simply other classes/libraries that the system uses
|
|
* to do its job. This is used by CodeIgniter to allow the core of the
|
|
* framework to be swapped out easily without affecting the usage within
|
|
* the rest of your application.
|
|
*
|
|
* This file holds any application-specific services, or service overrides
|
|
* that you might need. An example has been included with the general
|
|
* method format you should use for your service methods. For more examples,
|
|
* see the core Services file at system/Config/Services.php.
|
|
*/
|
|
class Services extends BaseService
|
|
{
|
|
/*
|
|
* public static function example($getShared = true)
|
|
* {
|
|
* if ($getShared) {
|
|
* return static::getSharedInstance('example');
|
|
* }
|
|
*
|
|
* return new \CodeIgniter\Example();
|
|
* }
|
|
*/
|
|
|
|
/**
|
|
* Responsible for loading the language string translations.
|
|
*
|
|
* @param string|null $locale
|
|
* @param bool $getShared
|
|
* @return MY_Language
|
|
*/
|
|
public static function language(?string $locale = null, bool $getShared = true): MY_Language
|
|
{
|
|
if ($getShared) {
|
|
return static::getSharedInstance('language', $locale)->setLocale($locale);
|
|
}
|
|
|
|
if (AppServices::get('request') instanceof IncomingRequest) {
|
|
$requestLocale = AppServices::get('request')->getLocale();
|
|
} else {
|
|
$requestLocale = Locale::getDefault();
|
|
}
|
|
|
|
// Use '?:' for empty string check
|
|
$locale = $locale ?: $requestLocale;
|
|
|
|
return new MY_Language($locale);
|
|
}
|
|
|
|
public static function pluginManager(bool $getShared = true): PluginManager
|
|
{
|
|
if ($getShared) {
|
|
return static::getSharedInstance('pluginManager');
|
|
}
|
|
|
|
$manager = new PluginManager();
|
|
|
|
if ($manager->canLoadPlugins()) {
|
|
$manager->discoverPlugins();
|
|
$manager->registerPluginEvents();
|
|
} else {
|
|
log_message('debug', 'PluginManager: skipping init, plugin_config table not found.');
|
|
}
|
|
|
|
return $manager;
|
|
}
|
|
|
|
private static HTMLPurifier $htmlPurifier;
|
|
|
|
public static function htmlPurifier($getShared = true): object
|
|
{
|
|
if ($getShared) {
|
|
return static::getSharedInstance('htmlPurifier');
|
|
}
|
|
|
|
if (!isset(static::$htmlPurifier)) {
|
|
$config = HTMLPurifier_Config::createDefault();
|
|
static::$htmlPurifier = new HTMLPurifier($config);
|
|
}
|
|
|
|
return static::$htmlPurifier;
|
|
}
|
|
}
|