如何使用Zend_Tool生成XML应用程序配置?

时间:2010-05-03 13:35:27

标签: php zend-framework zend-tool

使用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>

1 个答案:

答案 0 :(得分:2)

好问题。

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

库\ Zend的\工具\项目\提供商\ 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工具提供商,我认为这可以提供帮助。

更新

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

class Zend_Tool_Project_Context_Zf_ApplicationConfigFile extends Zend_Tool_Project_Context_Filesystem_File
{

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

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

Introducing Zend Tool