2010-05-03 10 views
2

Lors de la création d'un nouveau projet en utilisant zf create project myproject, il créera une mise en page de projet par défaut avec un fichier application.ini dans le dossier configs. Où puis-je modifier ces paramètres par défaut afin qu'il génère (et utilise) un fichier XML (application.xml)? J'ai regardé la documentation pour Zend_Tool (http://framework.zend.com/manual/en/zend.tool.html), mais il semble n'y avoir aucune information sur la façon de le faire. Et supposons que vous souhaitiez utiliser une autre mise en page de dossier par défaut (c'est-à-dire utiliser htdocs au lieu de public comme racine de document), y a-t-il un moyen de spécifier cela aussi?Comment générer une configuration d'application XML à l'aide de Zend_Tool?

Des pointeurs vers des informations pertinentes (btw j'ai regardé le Quickstart, rien de pertinent n'est mentionné là sauf si je le néglige)?

modifier

J'ai déjà essayé de créer un profil (stocké dans .zf/projet/profils), et utilisé que pour créer un projet (en utilisant zf create project myproject myprofile) mais cela ne change rien, même si le fichier .zfproject.xml à la racine du nouveau projet ne contient le réglage <applicationConfigFile type="xml"/> ...

le nouveau projet contient ce (comme vous pouvez le voir, il est juste les paramètres par défaut, seul le type de applicationConfigFile a été changé):

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

Répondre

2

Bonne question.

Vous avez besoin d'une sorte de profil de projet. Jetez un oeil à:

bibliothèque

\ Zend \ Outil \ projet \ Provider \ Project.php

Il y a une section avec une configuration par défaut.

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

La semaine dernière, il y avait une bonne VideoScreencast expliquant comment créer vos propres fournisseurs Zend Tool, je pense que cela peut aider.

Mise à jour:

J'ai vérifié le code source, ressemble le nom de fichier est non modifiable.

class Zend_Tool_Project_Context_Zf_ApplicationConfigFile extends Zend_Tool_Project_Context_Filesystem_File 
{ 

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

Impossible de trouver une méthode pour le définir sur xml.

Introducing Zend Tool

+0

Eh bien en fait, je l'ai déjà créé un profil (en .zf/projet/profils) où j'ai changé '' 'dans '. Si je crée un projet en utilisant ce profil nommé, alors dans le fichier .zfproject.xml vous voyez qu'il a récupéré le bon XML, MAIS il génère toujours un fichier application.ini, pas de fichier application.xml ... J'ai mis à jour le post original avec le contenu de mon profil. – wimvds

+0

a mis à jour mon message – opHASnoNAME

+0

J'ai également regardé le code. Fondamentalement vous pouvez fournir un type, mais ceci est simplement ignoré et le support du fichier INI semble aussi être codé en dur (voir getAsZendConfig) ... – wimvds