2011-05-11 2 views
0

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.

Répondre

1

Je vous recommande de créer un contrôleur de base pour créer toutes vos listes spécifiques à partir de.

Ainsi, vous créez un dossier de listes dans votre répertoire de contrôleur, ainsi qu'un listings.php comme base pour tous les contrôleurs dans le répertoire des listes.

Vous venez d'étendre le contrôleur de base dans tous vos contrôleurs de listes et toutes les fonctionnalités qui sont dans le contrôleur de base sont héritées.

plus de détails sur how to structure base controllers in fuel.

Questions connexes