tccltd / tcc-abstract-module
TccAbstractModule 软件包
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-14 15:46:20 UTC
README
提供了一个可以由个体模块类扩展的 AbstractModule 类,以便自动实现功能,如自动加载和配置。
安装
只需将 tccltd/tcc-abstract-module 添加到您的 composer.json 文件中。
使用方法
在创建新的模块时,在您的 Module.php 中扩展 TccAbstractModule\Module\AbstractModule。
PHP 5.3 注意:如果您不使用 PHP 5.4,则需要扩展 TccAbstractModuleNoTraits 而不是 TccAbstractModule。提供的功能是相同的。
对于更简单的模块,您可能会发现这已经足够了。
namespace MyModule;
use TccAbstractModule\Module\AbstractModule;
class Module extends AbstractModule
{
}
抽象模块将自动配置以下行为:
-
自动加载:首先使用在 ./autoload_classmap.php 中定义的类映射,如果失败,则回退到标准 PSR-0 兼容的自动加载器,该自动加载器从 ./src/MyModule/ 中的文件提供服务。
-
模块配置:加载所有在 ./config/ 中符合格式 module.config{,.*}.php 的文件。作为良好的实践,您应该将路由分离到 module.config.routes.php。
-
服务配置:在您的 Module.php 的 getServiceConfig() 函数中定义服务管理可调用、服务、工厂、别名、初始化器和抽象工厂,这些现在应在 ./config/service/service.config.php 中定义。格式相同。请注意,所有在 ./config/service/ 中符合格式 service.config{,.*}.php 的文件都将被加载,如果您希望进一步细分服务配置。
-
控制器配置:在您的 Module.php 的 getControllerConfig() 函数中定义控制器管理可调用、服务、工厂、别名、初始化器和抽象工厂,这些现在应在 ./config/service/controller.config.php 中定义。格式相同。请注意,所有在 ./config/service/ 中符合格式 controller.config{,.*}.php 的文件都将被加载,如果您希望进一步细分控制器配置。
-
视图助手配置:在您的 Module.php 的 getViewHelperConfig() 函数中定义视图助手管理可调用、服务、工厂、别名、初始化器和抽象工厂,这些现在应在 ./config/service/viewhelper.config.php 中定义。格式相同。请注意,所有在 ./config/service/ 中符合格式 service.config{,.*}.php 的文件都将被加载,如果您希望进一步细分视图助手配置。
一个典型的文件结构(关注与此模块相关的方面)可能如下所示:
module/
MyModule/
config/
service/
controller.config.php
service.config.php
viewhelper.config.php
module.config.php
module.config.routes.php
autoload_classmap.php
Module.php
覆盖
如果您想修改 AbstractModule 的行为,您可以通过覆盖您自己的 Module.php 文件或扩展整个模块并创建自己的 AbstractModule 来实现。如果您有可能会对所有此模块的用户有益的建议,请随时提出,当然可以!
特性
TccAbstractModule 由特性组成。这意味着您可以选择使用您想要使用的功能。在这种情况下,您不会覆盖 AbstractModule。相反,您会在自己的模块类中使用相关的特性。请注意,您需要使用 ClassDirTrait 才能使用其他特性,并使用 ClassNamespaceTrait 才能使用 AutoloaderProviderDefaultTrait。
预计大多数用户不需要挑选。