我想一种解决方案是编辑 library/zend/Tool/Project/Context/Zf 中的文件,这些文件似乎提供了用于开箱即用项目的内容/结构。
但这听起来不像是正确的解决方案。此外,在我正在进行的研究中,我已经发现该工具(zf.bat 或 sh)会扫描 php inculde_path 上的所有目录以查找“清单”和“提供者”,这反过来又为该工具提供了功能。
Zend 开发人员的文章Zend_Tool for the Developer刚刚澄清了一些事情。
清单
可用于捆绑和“加载”任意数量的提供程序。
提供者
提供者反过来是您想要使用的 CLI 命令的实际容器,其设计类似于“控制器/动作”设计。您可以通过调用从命令提示符调用特定类(控制器)的方法(操作):
zf <method-name> <class-name>
鉴于此类扩展 Zend_Tool_Project_Provider_Abstract
随后我发现让负责设置开箱即用布局的提供者的清单位于:
库\Zend\Tool\Project\Provider\Manifest.php
在此文件中,将以下提供程序返回给工具:
public function getProviders()
{
return array(
new Zend_Tool_Project_Provider_Profile(),
new Zend_Tool_Project_Provider_Project(),
new Zend_Tool_Project_Provider_Controller(),
new Zend_Tool_Project_Provider_Action(),
new Zend_Tool_Project_Provider_View(),
new Zend_Tool_Project_Provider_Module(),
new Zend_Tool_Project_Provider_ProjectProvider()
);
}
这些显然是可用的默认 CLI 命令。
此外,很明显,您可以通过提供您自己的 xml 项目配置文件来对创建的内容产生很大影响,该配置文件默认在 library/Zend/Tool/Project/Provider/Project 的方法 _getDefaultProfile() 中创建。
我现在正在尝试什么:
- 用我自己的东西覆盖默认提供者和默认清单,并在我自己的项目提供者中覆盖 _getDefaultProfile() 并将一些东西设置为 true 而不是 false。
我在 CLI 不接受我的提供程序时遇到了一些问题。我会报告进度的!