Как перенести оболочку модулей в отдельную часть и после его подхватывать

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение andry »

Заголовок возможно не всем сначала будет понятен, объясню что нужно

сейчас у меня модули реализованы таким образом, к примеру модуль новости

protected\modules\news\models\News.php
protected\modules\news\controllers\NewsController.php

видно что данный модуль имеет отдельную свою директорию "news", также отдельный файл News.php и NewsController.php

всё это работает, но по мере расширения проекта начинает напрягать создавать новые модули. Например некоторые модули идентичны, мне приходится копировать полностью папку news и в ручную переименовывать например из news в article тоесть под статьи, по сути там поля одинаковые. Но смысл дублировать код? А что если найдётся какой либо баг в news и нужно править код ещё в article? нужно править везде.

Появилась у меня такая мысль, что если весь код перенести в отдельную часть, и его подхватывать другими модулями(news,article), вот только не знаю возможно ли такое делать? использую ActiveRecord. Соответственно у каждого модуля будет свой индекс что-то вроде news_2,article_3 и т.д. Что-то подобное я видел у системы hostcms, там есть функция создать модуль и присваиваешь новому модулю название а индекс присваивается автоматически чтобы не создавать путаницу. У каждого модуля своя таблица.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение SiZE »

andry писал(а):приходится копировать полностью папку news и в ручную переименовывать например из news в article тоесть под статьи, по сути там поля одинаковые. Но смысл дублировать код? А что если найдётся какой либо баг в news и нужно править код ещё в article? нужно править везде.
Это нормально.
andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение andry »

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

Вообще такое возможно сделать, кто ни будь проделывал такое?
я так понимаю это больше с реализацией ActiveRecord связано и именами моделей/контроллеров что-то нужно сделать ведь их имена будут прописаны отдельно.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение SiZE »

Используй трейты. Или напиши компонент PageLikeNews =)
andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение andry »

SiZE, можно немного по подробнее в какую тему капать дальше?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение SiZE »

Ты хочешь получить универсальный ответ на каждую группу модулей или тебя конкретно новости-статьи беспокоят?
andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение andry »

возможно я ещё не совсем разобрался, и нужно ли действительно такое это, заморачиваться с этой автоматизацией. Таких модулей будет возможно не так много новости/статьи/обзоры, и ради них мудрить что-то. Скорее так и оставлю :)
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Как перенести оболочку модулей в отдельную часть и после его подхватывать

Сообщение SiZE »

Через 2-3 проекта, у тебя модуль новости будет вылизан как у кота сам знаешь что :D
Ответить