xervice / kernel
2.0.0
2018-08-22 09:59 UTC
Requires
- php: >=7.1.0
- xervice/core: ^4.0.0
Requires (Dev)
README
用于通过服务扩展应用程序的内核。
安装
composer require xervice/kernel
配置
您可以通过扩展应用程序中的依赖提供者将服务添加到内核。
<?php namespace App\Kernel; use Xervice\Kernel\KernelDependencyProvider as XerviceKernelDependencyProvider; class KernelDependencyProvider extends XerviceKernelDependencyProvider { /** * Service classes with key as service name * e.g. * myService => myservice::class * * @return array */ protected function getServiceList(): array { return [ 'routing' => MyRoutingService::class ]; } }
用法
您可以使用内核启动应用程序并运行所有依赖的引导程序。
use Xervice\Core\Locator\Locator; $locator = Locator::getInstance(); $kernel = $locator->kernel()->facade(); try { $kernel->boot(); $kernel->run(); } catch (\Exception $e) { $locator->exceptionHandler()->facade()->handleException($e); }
自有服务
要创建自有服务,您必须实现 BootInterface 和/或 ExecuteInterface。
示例
<?php namespace App\MyModule\Business\Kernel; use Xervice\Kernel\Business\Model\Service\ServiceProviderInterface; use Xervice\Kernel\Business\Plugin\BootInterface; use Xervice\Kernel\Business\Plugin\ExecuteInterface; class MyService implements BootInterface, ExecuteInterface { /** * @param \Xervice\Kernel\Business\Model\Service\ServiceProviderInterface $serviceProvider */ public function boot(ServiceProviderInterface $serviceProvider): void { // boot something } /** * @param \Xervice\Kernel\Business\Model\Service\ServiceProviderInterface $serviceProvider */ public function execute(ServiceProviderInterface $serviceProvider): void { // execute something } }