代码之家  ›  专栏  ›  技术社区  ›  wimvds

如何使用Zend_工具生成XML应用程序配置?

  •  2
  • wimvds  · 技术社区  · 15 年前

    使用创建新项目时 zf create project myproject 它将使用configs文件夹中的application.ini创建默认项目布局。在哪里可以更改这些默认设置,以便它生成(并使用)XML文件(application.xml)?我看过Zend_工具的文档( 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 回复  |  直到 15 年前
        1
  •  2
  •   opHASnoNAME    15 年前

    问得好。

    你需要一些项目简介。看一看:

    库\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" />
    

    上周有一个很好的视频播放解释了如何创建你自己的Zend工具提供商,我认为这可以帮助。

    更新:

    我已经检查了源代码,文件名似乎不可更改。

    class Zend_Tool_Project_Context_Zf_ApplicationConfigFile extends Zend_Tool_Project_Context_Filesystem_File
    {
    
        /**
         * @var string
         */
        protected $_filesystemName = 'application.ini';
    

    找不到将其设置为XML的方法。

    Introducing Zend Tool