Организация админки, собираю инфу
Организация админки, собираю инфу
Друзья, собираюсь взяться за админку к своему проекту в связи с чем собираю информацию и Ваш опыт
Вот мои вопросы:
1. Планирую организовать админку в виде модуля, в связи с чем встаёт вопрос как в модуле админке использовать yii-user или yii-user-management расширения? (формы входа, выхода и прочее)
2. Существует ли возможность на лету подхватывать уже готовые модели не создавая(расширяя) новых специально для админки?
Вот мои вопросы:
1. Планирую организовать админку в виде модуля, в связи с чем встаёт вопрос как в модуле админке использовать yii-user или yii-user-management расширения? (формы входа, выхода и прочее)
2. Существует ли возможность на лету подхватывать уже готовые модели не создавая(расширяя) новых специально для админки?
Re: Организация админки, собираю инфу
Посмотрите в строну viewtopic.php?f=9&t=1083
- greatdane
- Сообщения: 408
- Зарегистрирован: 2010.10.20, 14:05
- Откуда: Электросталь
- Контактная информация:
Re: Организация админки, собираю инфу
Скажите, пожалуйста, а в чем вообще сакральный смысл организации админки отдельным модулем? Почему не контроллером с большим количеством действий? Это как-то влияет на производительность, или есть другие причины?
Re: Организация админки, собираю инфу
Лично мне нужен функционал, которые позволит организовать админку не создавая массу новых контроллеров.
Мне нужен модуль админки, который способен подцепить уже имеющиеся контроллеры и выводить специально разработанные для админки view, оставляя неизменной всю остальную логику.
ИМХО админка из контроллера - это бред.
Мне нужен модуль админки, который способен подцепить уже имеющиеся контроллеры и выводить специально разработанные для админки view, оставляя неизменной всю остальную логику.
ИМХО админка из контроллера - это бред.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Организация админки, собираю инфу
У меня сейчас именно так и работает.
Модуль имеет controllerMap, доступен из конфига. Через него настраиваю контроллеры админки.
Так же есть дефолтный контроллер crud, который принимает имя класса модели.
Модуль имеет controllerMap, доступен из конфига. Через него настраиваю контроллеры админки.
Так же есть дефолтный контроллер crud, который принимает имя класса модели.
Жду Yii 3!
Re: Организация админки, собираю инфу
Не мог бы поделиться, более точной информацией о реализации?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Организация админки, собираю инфу
Ну у меня тоже как раз только скетчи, проектирую.
А рабочая реализация очень проста, и почти все описал.
Вот приложил настройку админки из конфига.
Думаю по ней примерно понятно по какому пути я пошел.
Мне тоже интересна тема организации удобной админки.
А рабочая реализация очень проста, и почти все описал.
Вот приложил настройку админки из конфига.
Думаю по ней примерно понятно по какому пути я пошел.
Мне тоже интересна тема организации удобной админки.
- Вложения
-
- backend-config.7z
- (1.42 КБ) 363 скачивания
Жду Yii 3!
Re: Организация админки, собираю инфу
У меня есть основной контроллер админки - там функционал, который не зависит от подключенных модулей. Например - выбор темы, действие редактирования настроек, вывод главной страницы админки, так же есть основной layout админки (к примеру, он опрашивает все модули и получает пункты меню админки). Все модули созданны как модули (тафталогия, да?). В них есть front-end контроллеры и back-end контроллеры, модели данных, контроллеры, которые устанавливают и удаляют модуль, модель настроек данных и пр.
Re: Организация админки, собираю инфу
Что ты подразумеваешь под модулями? Каким образом подключаются frontend и backend контроллеры?mitaichik писал(а):У меня есть основной контроллер админки - там функционал, который не зависит от подключенных модулей. Например - выбор темы, действие редактирования настроек, вывод главной страницы админки, так же есть основной layout админки (к примеру, он опрашивает все модули и получает пункты меню админки). Все модули созданны как модули (тафталогия, да?). В них есть front-end контроллеры и back-end контроллеры, модели данных, контроллеры, которые устанавливают и удаляют модуль, модель настроек данных и пр.
Re: Организация админки, собираю инфу
Админка это что угодно но не контроллер. Контроллер управляет действиями для одной сущьности. Есть пользователи, для пользователей как минимум 4 действия (CRUD), на практике их больше. Что бы MVC бекенда не пересекалась в MVC фронтенда - первый выносят как отдельный модуль.greatdane писал(а):Скажите, пожалуйста, а в чем вообще сакральный смысл организации админки отдельным модулем? Почему не контроллером с большим количеством действий? Это как-то влияет на производительность, или есть другие причины?
http://yiiframework.ru/doc/guide/ru/bas ... -practices
Re: Организация админки, собираю инфу
Под модулями я подразумеваю "Каталог", "Новости", "Статичные страницы" и т.д.Что ты подразумеваешь под модулями?
Не понял что ты имеешь в виду? Что значит подключаются? Как обычные контроллеры. Нпример, для статичной страницы контроллер PageController, для их администрирования - PageAdminControllerКаким образом подключаются frontend и backend контроллеры
Re: Организация админки, собираю инфу
А как ты подключаешь файлы, которые у тебя в архиве? Не считаешь что это достаточно громоздко получается?mc-bear писал(а):Ну у меня тоже как раз только скетчи, проектирую.
А рабочая реализация очень проста, и почти все описал.
Вот приложил настройку админки из конфига.
Думаю по ней примерно понятно по какому пути я пошел.
Мне тоже интересна тема организации удобной админки.
У меня сформировалась следующая идея, которая частично похожа на YiiAdmin.
Суть такова:
Если я хочу редактировать существующую модель через админку, то при запросе index.php?r=backend/fields подключается контроллер из application.controllers (а не application.modules.backend.controllers) без всяких махинаций и автоматом подгружает экшн созданный специально для админки в этом же контроллере (при простом запросе во frontend это index.php?r=field ->fieldController.actionIndex, а в backend это index.php?r=backend/fields -> fieldController.actionAdminIndex или тотже actionIndex, но с другим view для админки), вдобавок модуль подключает свой лейаут. Всё это без controllerMap, если дело не касается контроллеров специфичных только для админки.
По сути, такая структура решает главную проблему: не нужно создавать/нагромождать кучу контроллеров, в итоге нужно только создать нужные экшены в уже имеющихся контроллерах и доработать view для админки.
Вот такая идея.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Организация админки, собираю инфу
Что за файлы из архива?serzhiio писал(а):А как ты подключаешь файлы, которые у тебя в архиве? Не считаешь что это достаточно громоздко получается?
Так как раз для этого нужен controllerMap, в него можно подключать любой контроллер из любой папки. Для специфичных для админки контроллеров, наоборот не нужен маппинг.serzhiio писал(а):Если я хочу редактировать существующую модель через админку, то при запросе index.php?r=backend/fields подключается контроллер из application.controllers (а не application.modules.backend.controllers)
...
Всё это без controllerMap, если дело не касается контроллеров специфичных только для админки.
Жду Yii 3!
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Организация админки, собираю инфу
Могу еще выложить свой crudcontroller который я больше не поддерживаю.
Re: Организация админки, собираю инфу
serzhiio, извини, вместо кнопки цитата, нажал правка (mc-bear)
Re: Организация админки, собираю инфу
Может быть напишем совместно модуль/расширение ?
Re: Организация админки, собираю инфу
Сдам проект - могу подключиться к разработке. Главное правильно продумать структуру. YiiAdmin красиво и удобно, но не расширяемо, поэтому нужен генератор + набор библиотек + дизайн хороший бы не помешал.
Re: Организация админки, собираю инфу
Сомневаюсь что реально создать "супер-контроллер", который будет обрабатывать администрирование всех модулей (под модулями я имею ввиду новости, каталог и пр.) Я тоже сначала так начал делать, но потом понял что это не есть удобно. На мой взгляд это как раз изобретение велосипедов... Рано или поздно по-любому столкнешься с проблемой, когда надо написать контроллер администрирования модуля, не похожий на все другие. Мало-ли что там понадобиться, например, переопределить init, или action по умолчанию...По сути, такая структура решает главную проблему: не нужно создавать/нагромождать кучу контроллеров, в итоге нужно только создать нужные экшены в уже имеющихся контроллерах и доработать view для админки.
Я сделал так: Создал контроллер для админа. Там определил фильтры доступа, layout, основные действия. От него наследовал еще несколько "типовых" контроллеров, нпример, для работы с деревьями, списками, и пр...
Контроллеры администрирования модулей наследуются от этих типовых. Да, в большинстве случаев они выглядят типа
Код: Выделить всё
class NewsAdminController extends ListAdminController{
public $listModel = 'News';
}
А единый контроллер для всего - ИМХО чушь, себе дороже встанет, поверь.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Организация админки, собираю инфу
Наверняка слышал про "наследование" - так что если правильно спроектировать свой контроллер и и модуль администрирования, то если вдруг тебе в каком-то особенном проекте понадобиться расширить функционал, легко можно сделать новый контроллер и подсунуть его через настройки модулю.mitaichik писал(а):Сомневаюсь что реально создать "супер-контроллер", который будет обрабатывать администрирование всех модулей (под модулями я имею ввиду новости, каталог и пр.) Я тоже сначала так начал делать, но потом понял что это не есть удобно. На мой взгляд это как раз изобретение велосипедов... Рано или поздно по-любому столкнешься с проблемой, когда надо написать контроллер администрирования модуля, не похожий на все другие. Мало-ли что там понадобиться, например, переопределить init, или action по умолчанию...
Жду Yii 3!
Re: Организация админки, собираю инфу
Как я понял serzhiio имеет в виду создание одного контроллера для всего, а для модулей создавать только action. Про наследование, конечно, слышал. Жалко php не поддерживает множественное наследование...