xervice / core
Xervice 核心功能
4.0.0
2018-08-28 08:22 UTC
Requires
- php: >=7.1.0
- xervice/config: ^3.0.0
Requires (Dev)
- codeception/codeception: *
- phpstan/phpstan: ^0.9.0
- symfony/var-dumper: *
README
Xervice 服务核心类
安装
composer require xervice/core
配置
使用此包无需配置。但您可以定义命名空间。
主项目命名空间
use Xervice\Core\CoreConfig; $config[CoreConfig::CORE_NAMESPACES] = [ 'Xervice' ]; $config[CoreConfig::PROJECT_NAMESPACES] = [ 'App' ];
用法
您可以创建自己的 Xervice 包。为此,您必须使用项目命名空间并创建一个模块目录。在该目录中,您可以使用一些预定义的模式,如 Facade、Factory、DependencyProvider、Config 和 Client。
结构 .
- src
- MyNamespace
- MyModule
- Business
- MyModuleFacade.php
- MyModuleBusinessFactory.php
- Communication
- MyModuleCommunicationFactory.php
- MyModuleDependencyProvider.php(用于通信层)
- Persistence
- MyModuleReader.php
- MyModuleWriter.php
- MyModuleConfig.php
- MyModuleDependencyProvider.php(用于业务层)
- Business
- MyModule
- MyNamespace
如果您不需要这些类中的任何一个,您可以删除它们。
要使用您的模块,您可以在应用程序中使用核心定位器
<?php $locator = \Xervice\Core\Locator\Locator::getInstance(); $locator->myModule()->facade()->publicMethod();
动态定位器
有两个动态定位器特质
- DynamicBusinessLocator
- DynamicCommunicationLocator
层
Communication -> Business -> Persistence
- 在通信层中,您可以访问通信工厂
- 在通信层中,您可以从 BusinessLayer 访问外观
- 在 BusinessLayer 外观中,您可以访问业务工厂
- 在业务工厂中,您可以访问来自持久层的读取器和写入器
业务和通信都有自己的依赖容器。您可以从工厂访问它们。
扩展
要扩展模块,您可以在上级命名空间中创建具有相同名称的目录。命名空间的顺序是
- 核心命名空间按定义顺序(默认:Xervice)
- 项目命名空间按定义顺序(默认:App)
如果您在 Xervice 命名空间中有一个模块,您可以从项目命名空间中覆盖类。并且您也可以在较低的项目命名空间中扩展这种逻辑。
自动生成
要生成模块,您可以使用 xervicecli 包。