Page 1 sur 1

execution fonction dans ini

Posté : 16 sept. 2011, 14:50
par devlop78
Bonjour,

Petite colle,

comment faire dans un fichier ini pour appeler l'execution d'une fonction ?

Ex:

Code : Tout sélectionner

[dev] resources.x.y = md5($machin);
Ca serait dommage de mettre tout le code là dedans et le reste dans du php ...

Merci !

Re: execution fonction dans ini

Posté : 16 sept. 2011, 17:02
par xTG
Un fichier ini est un fichier texte, rien de plus, rien de dynamique donc.
Or si ce fichier est généré via PHP tu y insères en fait soit des constantes soit des variables.
Le retour d'une fonction est une variable (enfin plutôt constant suivant l'algo et les paramètres on va dire...). ;)

Donc :
$ma_variable_pour_le_ini = maFonction($monParam);
// puis on insère la variable dans le reste du traitement

Re: execution fonction dans ini

Posté : 16 sept. 2011, 17:04
par Cyrano
Ce que je mettrais dans le fichier ini, ce serait le nom du fichier PHP où se trouverait ladite fonction et dans le code qui utilise le ini, il suffirait de récupérer le nom de ce fichier selon les paramètres appropriés et de l'inclure ensuite. Ce sera moins casse-tête à mon avis.

il te faudrait donc créer quelque part un fichier qui serait par exemple conf.dev.php, un autre conf.prod.php avec, pourquoi pas, des intermédiaires, conf.recette.php :-k

Re: execution fonction dans ini

Posté : 16 sept. 2011, 20:05
par devlop78
Pas dynamique oui, on peut quand même y mettre des constantes. Je cherche juste à voir jusqu'où aller. Le fichier ini est écrit à la main et je ne peux pas lui indiquer le chemin, n'étant pas tout à fait censé savoir où il est. En fait, je renseigne actuellement le nom de la classe à instancier, et derrière, je renseigne le dossier où se trouvent tous les plugins, mais la déclaration est plus généraliste (sous Zend Framework je précise).

Actuellement j'ai :

application.ini :

Code : Tout sélectionner

resources.frontController.plugins.essai = "Application_Plugins_Essai"
bootstrap.php :
        $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
    'basePath'  => APPLICATION_PATH,
    'namespace' => 'Application',
            'resourceTypes' => array(
                'plugins' => array(
                    'path' => 'plugins/',
                    'namespace' => 'Plugins'
                    
                )
                
            )
));
Ainsi, je change le répertoire de tous les plugins en même temps, voire de toute l'application, à un seul endroit. Là, on est plus dans le ZF, ma question, je vous rassure, était précisemment sur le .ini, à moins d'avoir loupé un truc ;)

Re: execution fonction dans ini

Posté : 17 sept. 2011, 10:48
par Ryle
Je pense que ce que tu as loupé, c'est le propos des fichiers ".ini". Il sont fait pour définir des constantes ou des valeurs par défaut à l'installation de ton application sur le serveur... Il est généralement lié à l'environnement et ne contient donc que des valeurs que tu doit connaître avant même de démarrer ton serveur :)

Donc non, il ne doit pas y avoir d'appel à des variables ou a des fonctions dans ces fichiers. Pour cela tu peux utiliser des fichiers de configuration, de constantes, ou de ce que tu veux qui auront l'extension php (et qui pourront donc exploiter des fonctions, des variables, des données en base ou encore des infos du .ini)

Re: execution fonction dans ini

Posté : 17 sept. 2011, 18:36
par devlop78
Oui tout à fait. Je ne sais pas pourquoi j'ai mis cet exemple, en fait l'utilisation est le nom des sessions. J'aime bien leur donner des noms dynamiques. Oui, le .ini est statique en soit, je voulais voir jusqu'où il était extensible.