Организация админки, собираю инфу

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Организация админки, собираю инфу

Сообщение serzhiio »

Друзья, собираюсь взяться за админку к своему проекту в связи с чем собираю информацию и Ваш опыт :D

Вот мои вопросы:
1. Планирую организовать админку в виде модуля, в связи с чем встаёт вопрос как в модуле админке использовать yii-user или yii-user-management расширения? (формы входа, выхода и прочее)
2. Существует ли возможность на лету подхватывать уже готовые модели не создавая(расширяя) новых специально для админки?
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: Организация админки, собираю инфу

Сообщение Nafania »

Посмотрите в строну viewtopic.php?f=9&t=1083
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: Организация админки, собираю инфу

Сообщение greatdane »

Скажите, пожалуйста, а в чем вообще сакральный смысл организации админки отдельным модулем? Почему не контроллером с большим количеством действий? Это как-то влияет на производительность, или есть другие причины?
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Re: Организация админки, собираю инфу

Сообщение serzhiio »

Лично мне нужен функционал, которые позволит организовать админку не создавая массу новых контроллеров.
Мне нужен модуль админки, который способен подцепить уже имеющиеся контроллеры и выводить специально разработанные для админки view, оставляя неизменной всю остальную логику.
ИМХО админка из контроллера - это бред.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Организация админки, собираю инфу

Сообщение slavcodev »

У меня сейчас именно так и работает.
Модуль имеет controllerMap, доступен из конфига. Через него настраиваю контроллеры админки.
Так же есть дефолтный контроллер crud, который принимает имя класса модели.
Жду Yii 3!
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Re: Организация админки, собираю инфу

Сообщение serzhiio »

Не мог бы поделиться, более точной информацией о реализации?
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Организация админки, собираю инфу

Сообщение slavcodev »

Ну у меня тоже как раз только скетчи, проектирую.
А рабочая реализация очень проста, и почти все описал.

Вот приложил настройку админки из конфига.
Думаю по ней примерно понятно по какому пути я пошел.
Мне тоже интересна тема организации удобной админки.
Вложения
backend-config.7z
(1.42 КБ) 363 скачивания
Жду Yii 3!
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Организация админки, собираю инфу

Сообщение mitaichik »

У меня есть основной контроллер админки - там функционал, который не зависит от подключенных модулей. Например - выбор темы, действие редактирования настроек, вывод главной страницы админки, так же есть основной layout админки (к примеру, он опрашивает все модули и получает пункты меню админки). Все модули созданны как модули (тафталогия, да?). В них есть front-end контроллеры и back-end контроллеры, модели данных, контроллеры, которые устанавливают и удаляют модуль, модель настроек данных и пр.
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Re: Организация админки, собираю инфу

Сообщение serzhiio »

mitaichik писал(а):У меня есть основной контроллер админки - там функционал, который не зависит от подключенных модулей. Например - выбор темы, действие редактирования настроек, вывод главной страницы админки, так же есть основной layout админки (к примеру, он опрашивает все модули и получает пункты меню админки). Все модули созданны как модули (тафталогия, да?). В них есть front-end контроллеры и back-end контроллеры, модели данных, контроллеры, которые устанавливают и удаляют модуль, модель настроек данных и пр.
Что ты подразумеваешь под модулями? Каким образом подключаются frontend и backend контроллеры?
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: Организация админки, собираю инфу

Сообщение BuCeFaL »

greatdane писал(а):Скажите, пожалуйста, а в чем вообще сакральный смысл организации админки отдельным модулем? Почему не контроллером с большим количеством действий? Это как-то влияет на производительность, или есть другие причины?
Админка это что угодно но не контроллер. Контроллер управляет действиями для одной сущьности. Есть пользователи, для пользователей как минимум 4 действия (CRUD), на практике их больше. Что бы MVC бекенда не пересекалась в MVC фронтенда - первый выносят как отдельный модуль.

http://yiiframework.ru/doc/guide/ru/bas ... -practices
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Организация админки, собираю инфу

Сообщение mitaichik »

Что ты подразумеваешь под модулями?
Под модулями я подразумеваю "Каталог", "Новости", "Статичные страницы" и т.д.
Каким образом подключаются frontend и backend контроллеры
Не понял что ты имеешь в виду? Что значит подключаются? Как обычные контроллеры. Нпример, для статичной страницы контроллер PageController, для их администрирования - PageAdminController
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Re: Организация админки, собираю инфу

Сообщение serzhiio »

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: Организация админки, собираю инфу

Сообщение slavcodev »

serzhiio писал(а):А как ты подключаешь файлы, которые у тебя в архиве? Не считаешь что это достаточно громоздко получается?
Что за файлы из архива?
serzhiio писал(а):Если я хочу редактировать существующую модель через админку, то при запросе index.php?r=backend/fields подключается контроллер из application.controllers (а не application.modules.backend.controllers)
...
Всё это без controllerMap, если дело не касается контроллеров специфичных только для админки.
Так как раз для этого нужен controllerMap, в него можно подключать любой контроллер из любой папки. Для специфичных для админки контроллеров, наоборот не нужен маппинг.
Жду Yii 3!
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Организация админки, собираю инфу

Сообщение Ekstazi »

Могу еще выложить свой crudcontroller который я больше не поддерживаю.
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Re: Организация админки, собираю инфу

Сообщение serzhiio »

serzhiio, извини, вместо кнопки цитата, нажал правка :( (mc-bear)
serzhiio
Сообщения: 60
Зарегистрирован: 2011.01.30, 14:09

Re: Организация админки, собираю инфу

Сообщение serzhiio »

Может быть напишем совместно модуль/расширение ?
Аватара пользователя
Troy
Сообщения: 235
Зарегистрирован: 2011.02.03, 21:04

Re: Организация админки, собираю инфу

Сообщение Troy »

Сдам проект - могу подключиться к разработке. Главное правильно продумать структуру. YiiAdmin красиво и удобно, но не расширяемо, поэтому нужен генератор + набор библиотек + дизайн хороший бы не помешал.
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Организация админки, собираю инфу

Сообщение mitaichik »

По сути, такая структура решает главную проблему: не нужно создавать/нагромождать кучу контроллеров, в итоге нужно только создать нужные экшены в уже имеющихся контроллерах и доработать view для админки.
Сомневаюсь что реально создать "супер-контроллер", который будет обрабатывать администрирование всех модулей (под модулями я имею ввиду новости, каталог и пр.) Я тоже сначала так начал делать, но потом понял что это не есть удобно. На мой взгляд это как раз изобретение велосипедов... Рано или поздно по-любому столкнешься с проблемой, когда надо написать контроллер администрирования модуля, не похожий на все другие. Мало-ли что там понадобиться, например, переопределить init, или action по умолчанию...

Я сделал так: Создал контроллер для админа. Там определил фильтры доступа, layout, основные действия. От него наследовал еще несколько "типовых" контроллеров, нпример, для работы с деревьями, списками, и пр...

Контроллеры администрирования модулей наследуются от этих типовых. Да, в большинстве случаев они выглядят типа

Код: Выделить всё

class NewsAdminController extends ListAdminController{
  public $listModel = 'News';
} 
 
Но я в любой момент могу дописать нужный функционал, что-то изменить, переопределить, в конце концов поставить обработчик на какое-то событие.
А единый контроллер для всего - ИМХО чушь, себе дороже встанет, поверь.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Организация админки, собираю инфу

Сообщение slavcodev »

mitaichik писал(а):Сомневаюсь что реально создать "супер-контроллер", который будет обрабатывать администрирование всех модулей (под модулями я имею ввиду новости, каталог и пр.) Я тоже сначала так начал делать, но потом понял что это не есть удобно. На мой взгляд это как раз изобретение велосипедов... Рано или поздно по-любому столкнешься с проблемой, когда надо написать контроллер администрирования модуля, не похожий на все другие. Мало-ли что там понадобиться, например, переопределить init, или action по умолчанию...
Наверняка слышал про "наследование" - так что если правильно спроектировать свой контроллер и и модуль администрирования, то если вдруг тебе в каком-то особенном проекте понадобиться расширить функционал, легко можно сделать новый контроллер и подсунуть его через настройки модулю.
Жду Yii 3!
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Организация админки, собираю инфу

Сообщение mitaichik »

Как я понял serzhiio имеет в виду создание одного контроллера для всего, а для модулей создавать только action. Про наследование, конечно, слышал. Жалко php не поддерживает множественное наследование...
Ответить