Aller au contenu

CakePhp : organisations des fichiers


Nicolas

Sujets conseillés

Bonjour,

Je développe un projet en CakePhp et j'aimerai avoir une organisation de fichiers qui soit cohérente et adaptée à plusieurs projets web et aux mises à jour futures de CakePhp.

Pour commencé j'ai tout mis dans le même répertoire public à savoir /home/user/domains/mondomaine.com/public_html

Dans le répertoire public_html j'ai donc les sous répertoires et fichiers suivants :

- /app

- /lib

- /plugins

- /vendors

- .htaccess

- index.php

- ...

Ensuite j'ai déplacé le répertoire lib qui contient un sous répertoire Cake qui est le coeur de CakePhp. J'ai mis ce répertoire dans /home/user/domains/mondomaine.com/ afin qu'il soit privé (=non accessible de l'extérieur).

Puis j'ai indiqué ce répertoire dans le fichier de config /app/webroot/index.php

Tout fonctionne bien (le projet en cours ainsi que le projet qui me sert à faire des tests fonctionnent avec le même répertoire lib/Cake).

- J'aimerai savoir si j'ai bien procédé ?

- Pour des raisons de sécurité et de centralisation des fichiers importants est-ce que je dois pas mettre le contenu de /app (mise à part le répertoire webroot) dans une zone de répertoire privé comme je l'ai fait avec le coeur.

Autres questions concernant les mises à jour :

- Pour la mise à jour du coeur j'aurai juste à remplacer les fichiers du répertoire /home/user/domains/mondomaine.com/lib/Cake ?

J'ai modifié les fichiers suivants :

/app/Config/core.php

/app/Config/routes.php

/app/Config/database.php

/app/Config/email.php

Pour database et email ca ne pose pas de problème car lors des mises à jour il n'y a pas de risque d'écrasement de fichier puisque ces 2 fichiers possède un suffixe default.

Par contre pour core.php et routes.php ce n'est pas le cas. Comment dois je procéder ? J'ai pensé à faire une copie de ces 2 fichiers /core-sav.php /routes-sav.php (par exemple) pour garder les modifs et les reproduire à chaque mise à jour sur les fichier originaux.

- Est-ce une bonne idée ?

- Même question pour app/Controller/appController.php que j'ai du modifier.

Merci d'avance pour les réponses ;-)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Ce que nous faisons pour assurer une mise à jour facilitée de nos applications est de garder le coeur de CakePHP intact sur notre serveur, en dehors du webroot.

Si tu as Git il te suffit de faire un

git clone git://github.com/cakephp/cakephp.git

et le tour est joué. Utiliser Git a également l'avantage de rendre les mises à jour ultra simples (git pull).

Ensuite viens ton application. Pour la créer il suffit simplement d'avoir l'équivalent du dossier "app" dans ton webroot. Si tu développes en local, tu peux utiliser la ligne de commande pour générer un nouveau projet :

cake bake monprojet

Bien qu'il soit en théorie "mieux" de ne rendre que le dossier "webroot" accessible par le web, en pratique je ne vois aucun problème à avoir tout ton dossier app ... car le .htaccess de la racine du dossier redirige toutes les requêtes vers le webroot (voir https://github.com/cakephp/cakephp/blob/master/app/.htaccess).

Maintenant tu n'as plus qu'à renseigner le chemin vers ton dossier cake dans le fichier "monprojet/webroot/index.php" et le tour est joué !

Si tu es à l'aise avec Capistrano j'ai mis en ligne la recette de déploiement que nous utilisons en interne : https://gist.github.com/2310646 - c'est encore améliorable je pense, mais nous avons plusieurs applications qui sont déployées avec sans problème.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...