2010-07-17 5 views
2

Est-il préférable d'avoir chaque application avec sa propre copie du code de la bibliothèque ZF, ou d'avoir le code dans une zone sur le lecteur et assurez-vous juste qu'il est sur le chemin d'inclusion? Avoir chaque application avec sa propre copie semble être le meilleur moyen d'éviter tout problème de déploiement (par exemple, le développement sous Windows et le déploiement sur Linux). J'utilise Netbeans comme IDE et je remarque qu'il ne copie pas les fichiers (le dossier de la bibliothèque est vide quand il devrait avoir le dossier Zend avec tous les sous-dossiers) lorsqu'un nouveau projet Zend est créé.Meilleures pratiques de la bibliothèque Zend Framework?

Répondre

1

Et si vous souhaitez passer à une version plus récente, vous d devez le faire sur toutes les installations faites ..;)

J'utilise une base de code pour le cadre et toutes les applications font référence à partir de là.

+0

Point équitable. Comment gérez-vous les problèmes de déploiement alors? Juste changer le code qui référence le chemin quand il va à un autre serveur? Ou peut-être que vous pouvez utiliser le ... J'ai oublié le terme PHP, mais l'application.ini et ont des paramètres différents pointant vers l'emplacement? –

+1

Chaque application a un dossier 'library' pour les bibliothèques. Nous avons également un dossier de bibliothèque partagé sur le serveur pour les choses Zend ou Doctrine. Ainsi, à chaque déploiement, nous ne faisons que symboliser le dossier Zend de la bibliothèque partagée dans le dossier de la bibliothèque locale de l'application. Nous utilisons Capistrano pour le déploiement automatisé, ce qui rend les choses simples. –

1

J'ai un dossier commun, qui contient toutes les versions de Zend Framework qui sont utilisées par toutes les différentes applications. Chaque application les référence. Nous avons donc une structure de répertoire comme ceci:

htdocs/common/zend-1.10.1/ 
htdocs/common/zend-1.10.2/ 
htdocs/apps/app1 
htdocs/apps/app2 

Si toutefois nous sommes sur un environnement de production - par exemple app1 a été déployé sur son propre serveur, nous faisons simplement app1 le dossier racine/htdocs (upload donc tous la substance dans le dossier app1 dans htdocs du serveur). Nous créons ensuite un dossier commun et téléchargeons les bibliothèques utilisées par cette application.

Cela fonctionne comme nous le faisons define(COMMON_PATH, $_SERVER['DOCUMENT_ROOT'].'/common') comme le dossier commun, donc aucune configuration supplémentaire n'est nécessaire pour les différentes structures de répertoires. Nous pouvons ensuite l'utiliser dans notre application.ini par zendpathorwhatever = COMMON_PATH "/zend-1.10.2

De cette façon, nous avons seulement une copie de chaque version de framework zend que nous utilisons, et pour la production, nous avons seulement besoin de télécharger ce dont nous avons besoin. Chaque application a toujours son propre dossier de bibliothèque, car il est utilisé pour les besoins de chaque application. S'il s'avère que toutes les applications utilisent une bibliothèque, nous la plaçons dans le dossier commun.

Dans l'ensemble, il est facile à gérer et s'avère être une solution élégante lorsqu'il est utilisé avec SVN Externals.

Questions connexes