IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Besoin d'aide sur Zend_Config_Writer [ZF 1.11]


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut Besoin d'aide sur Zend_Config_Writer
    Bonjour,

    Je galère sur un petit bout de code que j'ai du mal à finaliser : je veux arriver à ce résultat :
    Créer un fichier de config.ini à l'aide Zend_Config_Writer avec le contenu suivant :

    [production]
    ;Base URL des medias du backend et baseurl du backend
    siteurl.baseurle = "www.mondomaine.com/backend"
    siteurl.css = "www.mondomaine.com/backend/css"
    siteurl.medias = "www.mondomaine.com/backend/medias"
    siteurl.js = "www.mondomaine.com/backend/js"

    [staging : production]

    ;Base URL des medias du backend et baseurl du backend
    siteurl.baseurle = "dev.mondomaine.com/dossier_site/backend"
    siteurl.css = "dev.mondomaine.com/dossier_site/backend/css"
    siteurl.medias = "dev.mondomaine.com/dossier_site/backend/medias"
    siteurl.js = "dev.mondomaine.com/dossier_site/backend/js"

    [testing : production]

    [development : production]

    ;Base URL des medias du backend et baseurl du backend
    siteurl.baseurle = "www.localhost.com/dossier_site/backend"
    siteurl.css = "www.localhost.com/dossier_site/backend/css"
    siteurl.medias = "www.localhost.com/dossier_site/backend/medias"
    siteurl.js = "www.localhost.com/dossier_site/backend/js"
    Voici le controller l'action du controller qui gère ça : pour l'instant ce sont des tests, les datas proviendront de la BD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
        public function traitementAction()
        {
            //Pas de vue au depart
            $layout = Zend_Layout::getMvcInstance()->getLayout();
            $this->getHelper($layout)->disableLayout();
            $this->getHelper('viewRenderer')->setNoRender();
     
            //Debut des tests            
            $config = new Zend_Config(array(), true);
            $config->production = array();
            $config->staging = array();
            $config->testing = array();
            $config->development = array();
     
            //Branche
            $config->production->siteurl = array();
     
            $_arrSection = array(   
                                'production' => array('staging', 'testing', 'development'));
     
            $_arrRubriques = array('baseurle', 'css', 'medias', 'js');
     
            foreach ($_arrSection as $racine => $listeExtends) {
     
                //Branche Production
                $config->$racine->siteurl = array();
                foreach ($_arrRubriques as $rubrique){
                    $config->$racine->siteurl->$rubrique = array();
                    $config->$racine->siteurl->$rubrique = 'racine';
                }
     
                //Debut des sous sections
                foreach($listeExtends as $section){
                    $config->setExtend($section, $racine);
     
                    //Test
                    foreach ($_arrRubriques as $rubrique){
                        $config->$section->siteurl = array();
                        $config->$section->siteurl->$rubrique = 'branches';
                    }
     
                    //Test
                    $config->development->siteurl = array();
                    $config->development->siteurl->baseurle = 'Branches';
                    $config->development->siteurl->css = 'Branches';
                    $config->development->siteurl->medias = 'Branches';
                    $config->development->siteurl->js = 'Branches';
                }          
     
            }
     
            //Zend_Debug::dump($config);exit;
     
            $writer = new Zend_Config_Writer_Ini();
            $writer->setConfig($config)
            ->setFilename(APPLICATION_PATH . "module_router.ini")
            ->write();
     
     
            exit('on sort');
            //********************************************************************
    }
    Voici le résultat que j'obtiens pour l'instant avec ce code :

    [production]
    siteurl.baseurle = "racine"
    siteurl.css = "racine"
    siteurl.medias = "racine"
    siteurl.js = "racine"

    [staging : production]
    siteurl.js = "branches"

    [testing : production]
    siteurl.js = "branches"

    [development : production]
    siteurl.baseurle = "Branches"
    siteurl.css = "Branches"
    siteurl.medias = "Branches"
    siteurl.js = "Branches"
    Je ne vois pas ce qui fait que je n'obtiens pas mon résultat, d'avance merci pour votre aide : siteurl.js est la seule valeur qui apparait.

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut C'est bon j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    		$arrModule = array('auth', 'backend', 'frontend', 'mobile');
     
    		foreach($arrModule as $_module){
     
    			//Le chemin du fichier varie dynamiquement en fonction du module traite
    			$prefixe = APPLICATION_PATH . '\modules\\' . $_module . '\\configs/';// A corriger
     
    			$config = array_fill_keys(array('production', 'staging', 'testing', 'development'), array());
     
    			$aliases = array(
    			    'baseURL'       => 'siteurl.baseurle',
    			    'baseURLcss'    => 'siteurl.css',
    			    'baseURLmedias' => 'siteurl.medias',
    			    'baseURLjs'     => 'siteurl.js',
    			);
     
    			//Les params viennent de la BD
    			$model = new Frontend_Model_SettingsMapper();
    			$listeUrls =$model->findParamsBeginNameByModule('baseURL', $_module);
    			$count = count($listeUrls);
     
    			if($count){
    				for($i=0;$i<$count;$i++){
    					$ligne = $listeUrls[$i];
    				}
    			}
     
    			//Construction du tableau au bon format pour passer à l'objet Zend_Config plus tard
    			foreach ($listeUrls as $row) {
    			    $config[$row->environnement][$aliases[$row->parametres]] = $row->values;
    			}
     
    			$writer = new Zend_Config_Writer_Ini();
    			$writer->setConfig(new Zend_Config($config))
    			->setFilename($prefixe . $this->_fileNameIni)
    			->write();
    		}
    		exit('OK');//
    Résultat obtenu
    [production]
    ;Base URL des medias du backend et baseurl du backend
    siteurl.baseurle = "www.monsite.com/backend"
    siteurl.css = "www.monsite.com/backend/css"
    siteurl.medias = "www.monsite.com/backend/medias"
    siteurl.js = "www.monsite.com/backend/js"

    [staging : production]

    ;Base URL des medias du backend et baseurl du backend
    siteurl.baseurle = "dev.monsite.com/dossier_site/backend"
    siteurl.css = "dev.monsite.com/dossier_site/backend/css"
    siteurl.medias = "dev.monsite.com/dossier_site/backend/medias"
    siteurl.js = "dev.monsite.com/dossier_site/backend/js"

    [testing : production]

    [development : production]

    ;Base URL des medias du backend et baseurl du backend
    siteurl.baseurle = "www.localhost.com/dossier_site/backend"
    siteurl.css = "www.localhost.com/dossier_site/backend/css"
    siteurl.medias = "www.localhost.com/dossier_site/backend/medias"
    siteurl.js = "www.localhost.com/dossier_site/backend/js"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'aide sur trigger
    Par devalender dans le forum SQL
    Réponses: 2
    Dernier message: 18/07/2004, 22h28
  2. [D7] Besoin d'aide sur un PChar
    Par bobby-b dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 16h42
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo