Структура файла + общие функции между контроллерами - PullRequest
0 голосов
/ 12 мая 2011

Так что я застрял с проблемой структуры файла, я пытаюсь найти лучший способ не повторять вещи.Я пытаюсь поделиться функциями с каждым дополнительным разделом (музыка, фильмы, шоу и т. Д.).Особенности, такие как лайки, рекомендации, теги и список.Я ищу совет о том, как его структурировать, чтобы было минимальное повторение кода и легкий безопасный доступ к функциям для каждого раздела.Подробности ниже.Также я использую Fuel PHP Framework: http://fuelphp.com/

Есть списки: Музыка, Фильмы, Шоу.(http://domain.com/music/view/1) Каждый листинг поддерживает теги: (* http://domain.com/music/tag/view/rock)

Пока это просто, но такие функции, как «лайки» и «рекомендации», меня смущают, так как я мог иметь «лайки» в контроллере каждого листинга. Пример (http://domain.com/music/like/1) или в своем собственном контроллере (http://domain.com/like/music/1).

Также в каждом листинге есть «рекомендации», в которых перечислены похожие листинги с отзывами и «лайками» для каждой рекомендации. Так что «лайки» могут быть для листингов и рекомендаций.

Музыка (Model_Music) [один-к-одному Model_List]

- Нравится

- Теги (многие ко многим)

- Рекомендации (кросс-референция по UNION)

- Список (в данном случае все треки и название песни) [один-ко-многим]

Показывает (Model_Shows) [один-к-одному Model_List]

- Likes

- Теги (многие ко многим)

- Рекомендации (перекрестная ссылка UNION)

- Список(в данном случае все имена и номера эпизодов) [один-ко-многим]

Как вы можете сказать, большая часть кода будет представлять собой один и тот же код только с другой структурой URLи некоторые изменения, какие таблицы использовать.Я просто не знаю, как лучше всего справляться, просто нужен более опытный взгляд на обработку всех этих дополнительных функций для каждого списка music.php, shows.php, movies.php и любых других, которые будут добавлены.

1 Ответ

1 голос
/ 13 мая 2011

Я бы порекомендовал создать базовый контроллер для построения всех ваших специфических списков.

Таким образом, вы бы создали папку списков в вашем каталоге контроллеров, а также listings.php в качестве базы для всех контроллеров вКаталог списков.

Вы просто расширяете базовый контроллер во всех ваших контроллерах списков, и все функции, которые есть в базовом контроллере, наследуются.

подробнее о , как структурировать базовые контроллеры втопливо .

...