10
votes

Zend, variable globale dans Application.ini?

J'ai une question comme je dois avoir une variable statique globale et j'ai une question est une possibilité de l'ajouter au fichier Application.ini, comment le faire?

ou je dois:

  1. Créer une classe abstraite avec une variable statique,
  2. Enregistrez-le dans Zend_registry pour avoir accès à cette variable à partir de toutes les applications (enregistrez-la dans un fichier bootstrap)
  3. Je peux l'utiliser, ou il est plus facile, je veux dire "de manière automatique" de le faire?

    Merci pour des conseils! Ratisaux,


1 commentaires

Les fichiers de configuration sont destinés à être utilisés pour spécifier des paramètres, utilisés comme entrées pour votre application. Vous ne devriez pas ajouter de manière programmatique


6 Réponses :


1
votes

Vous pouvez spécifier la valeur dans l'application.ini et dans le bootstrap.php que vous le lisez et enregistrez dans Zend_Regist. Vous pouvez également utiliser la méthode PHP Définir pour créer des constantes (si votre variable est constante).


1 commentaires

+1 sur simplement en utilisant des globaux php. Par conséquent, contourner la nécessité d'avoir accès à la classe statique de Zend.



6
votes

La meilleure solution pour moi était de créer une variable dans le fichier index.php. J'ai ajouté: défini ('Nom de variable') || Définir ("Nom de variable", "quelque chose ici");

Et maintenant je peux y accéder à partir de partout; D Merci beaucoup!


0 commentaires

13
votes

dans application.ini fichier xxx

in bootstrap xxx

à tirer du registre xxx


0 commentaires

6
votes

Je n'utiliserais pas la Zend_registry ni les constantes, pour deux raisons

  1. Dans le registre, vous n'êtes jamais sûr de ce qui s'est passé avec les variables. Chaque partie de l'application peut les changer et vous ne seriez pas remarqué. Je vois le registre en fait comme un modèle anit.
  2. Les constantes polluent votre application inutilement. Et si vous utilisez pour chaque configuration, une certaine constante? Vous devez conserver un document supplémentaire avec toutes les constantes définies, c'est horrible de maintenir.

    Quelle est la meilleure option est, consiste à obtenir directement l'objet de configuration à partir du bootstrap. Dans les exemples suivants, je suppose que vous avez ceci dans votre application.ini: xxx

    Le bootstrap est défini comme paramètre dans le fichier frontal. Si vous avez un contrôleur d'action, cela le rend aussi simple que celui-ci: xxx

    Si vous avez un service instancié dans votre contrôleur, vous pouvez maintenant les transmettre à travers le constructeur et / ou Setter.

    Si vous souhaitez obtenir les options non comprises dans votre contrôleur, mais ailleurs, vous pouvez utiliser le modèle Singleton les outils FrontController. Donc, à n'importe quel endroit (bien sûr seulement pendant l'expédition, pas pendant la bootstrap elle-même), vous êtes capable de le faire: xxx

    avec la méthode ci-dessus, vous avez toujours la sécurité que vous avez toujours la bonne option de configuration et pas certains éventuellement muté une.


1 commentaires

C'est ce que je cherchais! Merci!



0
votes

Je viens d'ajouter Définir ("variable_name", "quelque chose ici"); à bootstrap. Constantes mondiales instantanées.

Ces constantes ont été placées à l'intérieur d'une fonction protected _intifuncname à l'intérieur de la bottestrap étend la classe


0 commentaires

0
votes

J'ai une série de constantes avec la convention de dénomination suivante dans application.ini: xxx

et je viens de les référer dans mon code comme s'il s'agissait de constantes PHP: < Pré> xxx


0 commentaires