melisplatform / melis-platform-framework-symfony
v5.0.1
2023-05-24 09:00 UTC
Requires
- php: ^8.0
- ext-ctype: *
- ext-iconv: *
- composer/package-versions-deprecated: ^1.11
- doctrine/annotations: ^1.13
- doctrine/common: ^3.2.2
- doctrine/migrations: 3.4.2
- egulias/email-validator: ^2.1.10
- laminas/laminas-code: 3.4.1
- melisplatform/melis-platform-frameworks: ^5.0
- phpdocumentor/reflection-docblock: ^5.3
- phpstan/phpdoc-parser: ^1.4
- psr/cache: 1.0.1
- psr/link: 1.0.0
- sensio/framework-extra-bundle: ^6.2
- symfony/amqp-messenger: ^5.4
- symfony/asset: ^5.4
- symfony/console: ^5.4
- symfony/doctrine-messenger: 5.4.*
- symfony/dotenv: ^5.4
- symfony/error-handler: ^5.4
- symfony/event-dispatcher: ^5.4
- symfony/event-dispatcher-contracts: ^2.5
- symfony/expression-language: ^5.4
- symfony/flex: ^1.17
- symfony/form: ^5.4
- symfony/framework-bundle: ^5.4
- symfony/http-client: ^5.4
- symfony/http-foundation: ^5.4
- symfony/http-kernel: ^5.4
- symfony/intl: ^5.4
- symfony/mailer: 5.4.*
- symfony/messenger: ^5.4
- symfony/mime: 5.4.*
- symfony/monolog-bundle: ^3.7
- symfony/notifier: 5.4.*
- symfony/options-resolver: ^5.4
- symfony/orm-pack: ^2.2
- symfony/password-hasher: ^5.4
- symfony/process: ^5.4
- symfony/property-access: ^5.4
- symfony/property-info: ^5.4
- symfony/proxy-manager-bridge: ^5.4
- symfony/redis-messenger: ^5.4
- symfony/routing: ^5.4
- symfony/runtime: 5.4.*
- symfony/security-bundle: ^5.4
- symfony/security-csrf: ^5.4
- symfony/serializer: ^5.4
- symfony/stopwatch: ^5.4
- symfony/swiftmailer-bundle: ^3.5
- symfony/translation: ^5.4
- symfony/twig-bridge: ^5.4
- symfony/twig-bundle: ^5.4
- symfony/validator: ^5.4
- symfony/var-exporter: ^5.4
- symfony/web-link: ^5.4
- symfony/webapp-meta: ^1.0
- symfony/webpack-encore-bundle: ^1.12
- symfony/yaml: ^5.4
- twig/extra-bundle: ^2.12|^3.0
- twig/twig: ^3.3
Requires (Dev)
- symfony/debug-bundle: 5.4.*
- symfony/debug-pack: *
- symfony/maker-bundle: ^1.38
- symfony/profiler-pack: *
- symfony/stopwatch: 5.4.*
- symfony/test-pack: *
- symfony/web-profiler-bundle: 5.4.*
- symfony/web-server-bundle: ^4.4
- dev-master
- v5.0.1
- v5.0.0
- v4.1.1
- v4.1.0
- v4.0.0
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- dev-update/php83
- dev-develop
- dev-update/utf8mb4
- dev-update/php-8-upgrade
- dev-update/replace-ocramius-pkg
- dev-migrate/laminas
- dev-moduleCreator
- dev-update/jquery3
- dev-symfonyDemoFull
This package is auto-updated.
Last update: 2024-09-06 05:35:26 UTC
README
此包是Symfony的入口,以便连接到Melis平台,例如访问已注册的服务和自动使用平台的数据库连接。
入门指南
以下说明将在您的机器上安装并运行项目的副本。
先决条件
为了运行此模块,您需要安装以下内容
- melisplatform/melis-platform-frameworks
当使用composer时,这会自动完成。
安装
运行composer命令
composer require melisplatform/melis-platform-framework-symfony
运行代码
激活模块
激活此包的方法与在symfony应用内部激活包相同。您只需要将其包类包含在symfony应用内部的包列表中(最可能在bundles.php文件中)。
return [
//All of the symfony activated bundles here
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
...
...
etc.
//Melis Platform Custom Bundles
MelisPlatformFrameworkSymfony\MelisPlatformFrameworkSymfonyBundle::class => ['all' => true]
];
访问Melis平台服务
MelisServiceManager类
- 此类是Symfony连接到Melis平台的入口。因此,通过使用此类,我们可以获取Melis平台的所有已注册服务。
- 您可以在symfony应用中通过调用其已注册服务键
melis_platform.service_manager
或使用依赖注入来调用此类(请参见以下示例)。
示例
//Using Dependency Injection
//Assuming we are inside a controller
protected $melisServiceManager;
//Inject MelisServiceManager in the controller constructor function
public function __construct(MelisServiceManager $melisServiceManager)
{
$this->melisServiceManager = $melisServiceManager;
}
//And then we can use the melis provider like this
//to get the language list of the Back Office
$melisCoreTableLang = $this->melisServiceManager->getService('MelisCoreTableLang');
$melisCorelangList = $melisCoreTableLang->fetchAll()->toArray();
//Using service key (melis_platform.service_manager)
//Assuming we are inside of any custom Symfony controller that extends AbstractController of Symfony
//Calling the service
$melisServices = $this->get('melis_platform.service_manager');
//Calling the MelisCoreTableLang service registered in Melis Platform
$languageTable = $melisServices->getService('MelisCoreTableLang');
//Calling fetchAll function inside MelisCoreTableLang service and convert the result to array
$languageList = $languageTable->fetchAll()->toArray();
-
位于symfony骨架内部的包可能会在扩展AbstractController的Controller中访问
melis_platform.service_manager
服务键时出现问题,因为AbstractController只使用一个包含一些服务的有限容器。但我们可以通过在我们的Controller中重写AbstractController的
getSubscribedServices
函数来注册我们的服务,仍然使用melis_platform.service_manager
服务键。
public static function getSubscribedServices()
{
return array_merge(parent::getSubscribedServices(),
[
'melis_platform.service_manager' => MelisServiceManager::class,
]);
}
事件监听器
DatabaseSwitcherListener
- 此监听器将强制Symfony使用Melis平台数据库。
SymfonyTranslationsListener
- 此监听器将获取所有Symfony翻译并将其存储在文件中(Resources/translations/melis/symfony-translations.phtml),以便Melis平台可以使用这些翻译。此文件必须可写。
作者
- Melis Technology - www.melistechnology.com
还可以查看参与此项目的贡献者列表。
许可
此项目根据OSL-3.0许可证授权 - 请参阅LICENSE