Je suis donc confronté à un problème de structure de fichier et j'essaie de trouver le meilleur moyen de ne pas répéter les choses. J'essaie d'obtenir des fonctionnalités partagées avec chaque section supplémentaire (musique, films, spectacles, etc.). Les caractéristiques étant Likes, Recommandations, Tags et List. Je cherche des conseils sur la façon de le structurer afin qu'il y ait une répétition minimale du code et un accès sécurisé facile aux fonctionnalités de chaque section. Les détails sont ci-dessous. Aussi j'utilise le framework PHP Fuel: http://fuelphp.com/Structure de fichier + fonctionnalités partagées entre les contrôleurs
Il ya des annonces: Musique, Films, Spectacles. (http://domain.com/music/view/1) Chaque liste prend en charge les balises: (http://domain.com/music/tag/view/rock)
Jusqu'à présent, c'est facile, mais des fonctionnalités comme 'j'aime' et 'recommandations' me confondent, comme dans je pourrais avoir 'aime' dans le contrôleur de chaque liste. Exemple (http://domain.com/music/like/1) ou dans son propre contrôleur (http://domain.com/like/music/1).
De plus, chaque liste contient des «recommandations» qui répertorient des listes similaires avec des avis et des «J'aime» pour chaque recommandation. Donc, j'aime peut être pour les listes et les recommandations.
Musique (Model_Music) [one-to-one Model_List]
- Aime
- Tags (many-to-many)
- Recommandations (référence croisée par UNION)
- Liste (dans ce cas, toutes les pistes et le nom du morceau) [one-to-many]
Spectacles (Model_Shows) [one-to-one Model_List]
- Aime
- Tags (many-to-many)
- Recommandations (référence croisée par UNION)
- Liste (dans ce cas, tous les noms d'épisode et le nombre) [un-à-plusieurs]
Comme vous pouvez le dire la plupart de ce sera le même code avec juste une structure d'URL différente et quelques changements sur quelle table à utiliser. Je ne suis pas sûr de savoir comment gérer les choses mieux, juste besoin d'un point de vue plus expérimenté sur la manipulation de toutes ces fonctionnalités supplémentaires à chaque liste music.php, shows.php, movies.php tous les autres qui seront ajoutés.