2

使用zf create project myproject它创建新项目时,将在 configs 文件夹中创建一个带有 application.ini 的默认项目布局。我在哪里可以更改这些默认设置,以便它生成(并使用)XML 文件 (application.xml)?我查看了 Zend_Tool 的文档(http://framework.zend.com/manual/en/zend.tool.html),但似乎没有关于如何执行此操作的信息。

并且假设您想使用不同的默认文件夹布局(即使用 htdocs 而不是 public 作为您的文档根目录),是否也可以指定它?

任何指向相关信息的指针(顺便说一句,我查看了快速入门,除非我忽略它,否则没有提到任何相关内容)?

编辑

我已经尝试创建一个配置文件(存储在 .zf/project/profiles 中),并使用它来创建一个项目(使用zf create project myproject myprofile),但这并没有改变任何东西,即使 .zfproject.xml 文件位于新项目的根目录中确实包含<applicationConfigFile type="xml"/>设置...

新项目包含以下内容(如您所见,这只是默认设置,仅更改了 applicationConfigFile 的类型):

<?xml version="1.0"?>
<projectProfile type="default" version="1.10">
  <projectDirectory>
    <projectProfileFile filesystemName=".zfproject.xml"/>
    <applicationDirectory classNamePrefix="Application_">
      <apisDirectory enabled="false"/>
      <configsDirectory>
        <applicationConfigFile type="xml"/>
      </configsDirectory>
      <controllersDirectory>
        <controllerFile controllerName="Index">
          <actionMethod actionName="index"/>
        </controllerFile>
        <controllerFile controllerName="Error"/>
      </controllersDirectory>
      <formsDirectory enabled="false"/>
      <layoutsDirectory enabled="false"/>
      <modelsDirectory/>
      <modulesDirectory enabled="false"/>
      <viewsDirectory>
        <viewScriptsDirectory>
          <viewControllerScriptsDirectory forControllerName="Index">
            <viewScriptFile forActionName="index"/>
          </viewControllerScriptsDirectory>
          <viewControllerScriptsDirectory forControllerName="Error">
            <viewScriptFile forActionName="error"/>
          </viewControllerScriptsDirectory>
        </viewScriptsDirectory>
        <viewHelpersDirectory/>
        <viewFiltersDirectory enabled="false"/>
      </viewsDirectory>
      <bootstrapFile filesystemName="Bootstrap.php"/>
    </applicationDirectory>
    <dataDirectory enabled="false">
      <cacheDirectory enabled="false"/>
      <searchIndexesDirectory enabled="false"/>
      <localesDirectory enabled="false"/>
      <logsDirectory enabled="false"/>
      <sessionsDirectory enabled="false"/>
      <uploadsDirectory enabled="false"/>
    </dataDirectory>
    <docsDirectory>
      <file filesystemName="README.txt"/>
    </docsDirectory>
    <libraryDirectory>
      <zfStandardLibraryDirectory enabled="false"/>
    </libraryDirectory>
    <publicDirectory>
      <publicStylesheetsDirectory enabled="false"/>
      <publicScriptsDirectory enabled="false"/>
      <publicImagesDirectory enabled="false"/>
      <publicIndexFile filesystemName="index.php"/>
      <htaccessFile filesystemName=".htaccess"/>
    </publicDirectory>
    <projectProvidersDirectory enabled="false"/>
    <temporaryDirectory enabled="false"/>
    <testsDirectory>
      <testPHPUnitConfigFile filesystemName="phpunit.xml"/>
      <testApplicationDirectory>
        <testApplicationBootstrapFile filesystemName="bootstrap.php"/>
      </testApplicationDirectory>
      <testLibraryDirectory>
        <testLibraryBootstrapFile filesystemName="bootstrap.php"/>
      </testLibraryDirectory>
    </testsDirectory>
  </projectDirectory>
</projectProfile>
4

1 回答 1

2

好问题。

您需要某种项目资料。看看:

库\Zend\Tool\Project\Provider\Project.php

有一个带有默认配置的部分。

 protected function _getDefaultProfile()
    {
        $data = <<<EOS
<?xml version="1.0" encoding="UTF-8"?>
<projectProfile type="default" version="1.10">
    <projectDirectory>
        <projectProfileFile />
        <applicationDirectory>
            <apisDirectory enabled="false" />
            <configsDirectory>
                <applicationConfigFile type="ini" />

上周有一个很好的 VideoScreencast 解释了如何创建自己的 Zend Tool Providers,我认为这会有所帮助。

更新:

我检查了sourceCode,看起来文件名是不可更改的。

class Zend_Tool_Project_Context_Zf_ApplicationConfigFile extends Zend_Tool_Project_Context_Filesystem_File
{

    /**
     * @var string
     */
    protected $_filesystemName = 'application.ini';

无法找到将其设置为 xml 的方法。

Zend 工具简介

于 2010-05-03T17:40:16.197 回答