Вопрос по cakephp, admin, cakephp-2.1 – Лучший способ реализовать панель администратора в CakePHP

6

Я пытаюсь перейти от CodeIgniter к CakePHP и могуt выяснить лучший способ реализации панели администратора. В CI я бы создал два разных приложения, одно для внешнего интерфейса и одно для панели администратора.

После поиска в Google я нашел три способа реализации админ-панели в CakePHP:

Маршрутизация - я нея не хочу использовать это так, как я хочу, чтобы контроллеры / модели были разделены для внешнего интерфейса и админ-панелиPluginДва отдельных приложения

Должен ли я использовать плагин для реализации панели администратора или у меня должны быть отдельные приложения? Есть ли преимущества одного над другим?

Перейти с 1. Маршрутизация, безусловно. joshua.paling
stackoverflow.com/questions/14474023/... Dipesh Parmar

Ваш Ответ

6   ответов
0

Вы можете использовать admin-маршрутизацию. Проверять, выписываться:

http://book.cakephp.org/2.0/en/development/routing.html#prefix-routing

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

В вашемAppController:

public function beforeFilter(){
        $this->set('current_user', $this->Auth,->user());
         }  

Это делает $ current_user доступным в вашем приложении.

Затем в ваших view-файлах вы можете проверить:

  
  
Префикс администратора - это удобная функция для быстрого, специального назначения функций администратора, но она не разделяет функциональность переднего и заднего плана. Если вам нравится разделять оба, префикс-маршрутизация - не лучший способ реализовать это. Кроме того, сложно поддерживать логику в ваших взглядах (если администратор и т. Д.), Особенно для крупных проектов. thaJeztah
16

Я обычно разрабатываю админ / бэкэнд как плагин. Это держит ваши серверные / административные контроллеры / представления / модели отделенными от внешнего интерфейса, и вы ненужно прыгать через обручи, чтобы иметь отдельные таблицы стилей, макеты и т. д.

Другое преимущество заключается в том, что и передний, и внутренний интерфейсы все еще являются частью одного и того же приложения, поэтому при желании вы можетеМожно поделиться логикой / компонентами, например, выВы сможете разместить помощников, которые можно использовать как для передней, так и для задней частидругой плагин (например, плагины / Shared или плагины / Handytexttools) и использовать оба, где вы хотите

Как правило большого пальца; Поместите компоненты, которые могут быть использованы для других проектов, в отдельный плагин, таким образом, вы можете просто без проблем добавить эти плагины в другие проекты. Сделайте ваши плагины простыми; Это'Нет проблем создать плагин, содержащий всего одного или двух помощников или моделей и несколько файлов JavaScript. Это облегчитвишня ' плагины, которые вам нужны для проекта. Однажды торткэшируются» расположение файлов всех классов в ваших плагинах, накладные расходы отдельных плагинов должны быть минимальными.

Возвращаясь кадмин плагин. Попробуйте включить только код, специфичный дляэтот проект в вашем плагине администратора имногоразовые детали в другом (например, общие таблицы стилей и макеты для админ-панелей). Вы'Вы сможете запустить админ-плагин для вашего следующего проекта с минимальным кодированием

Удачи в вашем проекте и наслаждайтесь CakePHP

Я проголосовал за тебя. thaJeztah очень помог мне в моих проблемах CakePHP. bowlerae
@ user6972 Мы (компания, в которой я работаю) неt использовать существующий плагин, но разработал его самостоятельно, используя Twitter Bootstrap для GUI (также разработал плагин CakePHP для этого дома). Мы неиспользовать префиксную маршрутизацию, потому что наличие плагина уже дает вам префикс в ваших URL (/ myplugin / mycontroller / myaction) thaJeztah
@bowlerae спасибо за голосование, надеюсь, мой ответ будет полезным и для других людей :) thaJeztah
Какой админ плагин вы рекомендуете? И вы используете префиксную маршрутизацию вместе с ними? user6972
Спасибо за объяснение. К сожалению могуне отвечаю, потому что я нене имеет требуемых очков репутации. Jatinder Thind
0

Старый и относится к CakePHP 1.3, но все же это вопрос, который вы должны проверить:Панель администратора CakePHP

Торт путь это маршрутизация. Я'буду идти с плагином, какCakeDC Пользователи это делает вещи проще.

Вы можете использоватьадмин» плагин, но, честно говоря, эта идея отстой, и выЯ получу дубликат кода. Мне приходилось сталкиваться с подобными ситуациями раньше в проектах, и я реорганизовал его для использования префиксной маршрутизации. На самом деле вы ничего не получите, например, поместив код в отдельный плагин. burzum
Я уже проверил сообщение, на которое вы ссылаетесь, и которое указывает на административную панель на основе маршрутизации, которую я нене хочу использовать. Я бы предпочел хранить свои контроллеры / модели отдельно, если смогу. Jatinder Thind
0

Я знаю, что это старая тема. Но хотел бы спросить, не было ли у кого-нибудь проблем с внедрением админ-панели в качестве плагина. Особенно дублирование кода.

Например, выРеализация сайта электронной коммерции. У вас есть OrderController как в основном, так и в админ-плагине. Дон»ты думаешь этоСложно ли поддерживать логику в двух местах?

Как насчет использования одного основного контроллера? Это's служит двум целям. Один в качестве API, а затем контроллер для вашего веб-приложения администратора.

Тогда ваша публичная сторона будет в основном общаться через API для получения данных.

Вы думаете этохорошая идея?

0

Вы можете использовать представления администратора, такие как admin_index.ctp, просто измените это

// Настройка :: записи (»Routing.admin ','админ);

в

Настройка :: Write (»Routing.admin ','админ);

в core.php и в контроллере добавьте функцию admin_index ()

4

Если вы хотите сохранить свои контроллеры и модели отдельно - яЯ бы пошел с отдельным приложением, хотя выВ итоге между приложениями будет куча дублирующихся кодов (ждущая техническая головная боль).

Моим выбором будет админ роутинг и админ тема.

Включите маршрутизацию администратора в /app/Config/core.php

В AppController beforeFilter ():

$this->theme = isset($this->params['admin']) ? "Admin" : "Site";

Переместите все виды вашего сайта и ресурсы в / app / View / Themed / Site /

Создайте свои темы администратора в / app / View / Themed / Admin

Я лично считаю, что администратор на основе маршрутизации полезен только для простых админ-панелей. Плюс я неМне нравится эта идея администратора и внешнего кода в одном файле. Решил пойти плагин путь пока. Jatinder Thind
Пожалуйста, прочитайте мой ответ, я попытался объяснить преимущества использования плагина. Разработка отдельногоприложение Для админ-панели, вероятно, желательно, только если админ-панель предназначена для управления несколькими сайтами. Если нет, я бы не стал создавать отдельное приложение thaJeztah
Как насчет подхода с плагином? Я погуглил один или два админских плагина для CakePHP. Это предлагает какие-либо дополнительные преимущества по сравнению с отдельными приложениями? Jatinder Thind

Похожие вопросы