Il existe un million et une structure de système de fichiers qui vont dans la myriade de projets Open Source disponibles. Des éléments comme les modules, les fichiers de langue, les domaines, les bibliothèques tierces, les migrations, l'internationalisation, les sauvegardes et les liens système vers d'autres parties du système ont donné lieu à de nombreuses approches pour organiser le système de fichiers d'un projet.
En tant que développeur PHP, je me demande si un type de normalisation commence à émerger parmi les projets. Avec PSR-0, nous avons enfin une norme pour nommer et charger les fichiers - mais cela n'a rien à ma connaissance sur les autres composants qui composent le système ou comment ils peuvent être manipulés de manière saine.
Nous traitons beaucoup plus que juste MVC, alors quels exemples y a-t-il de grands projets gérant correctement toutes ces choses?
Réponses:
Il n'est pas vraiment possible de standardiser la manière dont les projets doivent être présentés, car "cela dépend".
Si vous introduisez une structure standard, mais que certaines ne correspondent pas aux exigences en cours de développement, vous pouvez vous retrouver avec du bruit supplémentaire dont vous n'avez pas besoin. De même, si les normes doivent fonctionner pour un large éventail de projets, elles devront intégrer trop de scénarios disparates.
Notre travail en tant que développeurs est de rechercher des modèles et des meilleures pratiques et de les appliquer à la tâche à accomplir. Nous utilisons notre expérience et notre expertise pour choisir la bonne structure de système de fichiers pour le projet sur lequel nous travaillons.
la source
Il ne semble pas y avoir beaucoup d'efforts de normalisation en cours, et pour être honnête, je ne vois pas l'avantage. Il n'y a qu'une seule règle à laquelle vous devez adhérer, c'est que vous ne devriez jamais avoir sous le docroot des choses qui n'y appartiennent pas (une précaution de sécurité de base).
En dehors de cela, j'irais simplement avec ce qui a du sens pour le projet.
Si vous utilisez MVC (via un framework ou ad-hoc), une structure de base avec / models, / views et / controllers est logique. Mais même si vous ne l'êtes pas, vous disposez généralement d'une sorte de couche d'accès aux données avec des classes qui correspondent à vos entités de données; il est logique d'avoir un répertoire pour ceux-ci; vous avez également généralement un tas de classes de logique métier et de fonctions utilitaires, donc un autre répertoire pour celles-ci; si vous utilisez un système de modèles, les modèles vont dans un autre répertoire; et puis vous voulez probablement un répertoire «bibliothèques», où vous mettez toutes les bibliothèques tierces. (Une fois que vous avez atteint ce point, vous faites à peu près du MVC de toute façon).
Si le projet est vraiment important, il peut probablement être divisé en sous-modules fonctionnels; si les sous-modules sont assez indépendants, il est logique de les utiliser à la place, avec un répertoire supplémentaire pour le code commun.
la source
Vous pouvez suivre la disposition du projet pour les deux cadres d'application les plus populaires:
Ceux-ci fourniront une structure extensible basée sur les meilleures pratiques et les expériences des utilisateurs
la source