本文共 2201 字,大约阅读时间需要 7 分钟。
在这个默认配置中,您会发现:
// Retrieve list of modules used in this application.
'modules' => require __DIR__ . '/modules.config.php',
因此,你有一个单独的
modules.config.php
紧挨着
application.config.php程序
把这些问题分开。默认情况下如下所示:
/**
* @link http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
* @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
/**
* List of enabled modules for this application.
*
* This should be an array of module namespaces used in the application.
*/
return [
'Zend\Router',
'Zend\Validator',
'Application',
];
尽管你跑了以后
composer install
希望在这里添加更多内容。
在骨架的唯一模块中(
Application
),您还可以找到
Module.php
在
src/
文件夹。这是从/by加载模块配置的地方。
在这里,我建议您通过在泛型模块(MVC?)中创建自己的抽象模块类,开始稍微偏离默认设置在某个地方。我建议这样做,以尽量减少重复代码的数量,因为大多数模块不会有超过一个简单的“这里的配置,做你的事情”,就像上面链接的默认值。
我自己的
Module.php模块
课程如下:
class Module extends AbstractModule
{
public function __construct()
{
parent::__construct(__DIR__, __NAMESPACE__);
}
}
以及
AbstractModule
这是:
abstract class AbstractModule implements ConfigProviderInterface, AutoloaderProviderInterface
{
/**
* @var String Path of current module
*/
protected $path;
/**
* @var String Namespace of current module
*/
protected $namespace;
/**
* This is to be called by descendant classes with:
* parent::__construct(__DIR__, __NAMESPACE__)
*
* @param $path string Module path
* @param $namespace string Module namespace
*/
public function __construct($path, $namespace)
{
$this->path = $path;
$this->namespace = $namespace;
}
/**
* @return array
*/
public function getConfig()
{
$config = [];
$path = $this->path
. DIRECTORY_SEPARATOR . '..'
. DIRECTORY_SEPARATOR . 'config'
. DIRECTORY_SEPARATOR . '*.php';
foreach (glob($path) as $filename) {
$config = array_merge_recursive($config, include $filename);
}
return $config;
}
/**
* @return array
*/
public function getAutoloaderConfig()
{
return [
'Zend\Loader\StandardAutoloader' => [
'namespaces' => [
$this->namespace => $this->path . DIRECTORY_SEPARATOR . 'src',
],
],
];
}
}
此设置仍允许您修改
Module.php模块
一个特定的模块,它是通用的,因此您只需要
__construct
如果您不需要其他操作,请使用子类函数。
注意,此设置需要
.php
中的文件
config/
文件夹。因此您可以开发自己的包以包含在默认配置中
.dist
并且仍然使用这个类。
转载地址:http://pkyhp.baihongyu.com/