Как я могу сгенерировать конфигурацию приложения XML с помощью Zend_Tool? - PullRequest
2 голосов
/ 03 мая 2010

При создании нового проекта с использованием zf create project myproject будет создан макет проекта по умолчанию с приложением application.ini в папке config. Где я могу изменить эти настройки по умолчанию, чтобы он генерировал (и использовал) файл XML (application.xml)? Я посмотрел документацию для Zend_Tool (http://framework.zend.com/manual/en/zend.tool.html),, но, похоже, нет информации о том, как это сделать.

И предположим, что вы хотите использовать другой макет папки по умолчанию (т. Е. Использовать htdocs вместо public в качестве корня документа), есть ли способ указать это также?

Есть ли какие-либо указатели на соответствующую информацию (кстати, я посмотрел на Quickstart, там ничего не упоминается, если я не пропускаю его)?

1012 * редактировать *

Я уже пытался создать профиль (хранится в .zf / project / profile) и использовал его для создания проекта (используя 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 Ответ

2 голосов
/ 03 мая 2010

Хороший вопрос.

Вам нужен какой-то профиль проекта. Загляните в:

библиотека \ Zend \ Инструмент \ 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, думаю, это может помочь.

Обновление:

Я проверил sourceCode, похоже, что имя файла не изменяется.

class Zend_Tool_Project_Context_Zf_ApplicationConfigFile extends Zend_Tool_Project_Context_Filesystem_File
{

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

Не удалось найти способ установить его в xml.

Представляем Zend Tool

...