How can I create XML application configuration using Zend_Tool?

When creating a new project using zf create project myproject

it will create a default project layout using application.ini in the configs folder. Where can I change these defaults so that it generates (and uses) an XML file (application.xml)? I have looked at the documentation for Zend_Tool ( http://framework.zend.com/manual/en/zend.tool.html ) but there doesn't seem to be any information on how to do this.

And suppose you would like to use a different default folder layout (i.e. use htdocs instead of public as the root of your document), is there a way to specify this as well?

Any pointers to relevant information (by the way, I was looking at Quickstart, nothing is mentioned there if I don't notice it)?

change

I've already tried creating a profile (stored in .zf / project / profiles) and used it to create a project (using zf create project myproject myprofile

), but that doesn't change anything even if the .zfproject.xml file in the root of the new project contains a parameter <applicationConfigFile type="xml"/>

...

The new project contains this (as you can see, these are only the defaults, only the applicationConfigFile type has changed):

<?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>

      

+2


a source to share


1 answer


Good question.

You need some kind of project profile. Take a look:

Library \ Zend \ Tool \ Project \ Provider \ Project.php

There is a section with default configuration.

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

      

A nice VideoScreencast came out last week explaining how to create your own Zend tool vendors, I think it might help.



Update:

I checked the sourceCode, it looks like the file name cannot be changed.

class Zend_Tool_Project_Context_Zf_ApplicationConfigFile extends Zend_Tool_Project_Context_Filesystem_File
{

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

      

Couldn't find a way to set it to xml.

Introducing the Zend Tool

+2


a source







All Articles