Как правило, разделение администратора и веб-приложения на две части - PullRequest
1 голос
/ 26 ноября 2011

Я создаю общедоступное веб / мобильное приложение, в котором будет существенный административный сервер.Хотя этот вопрос носит довольно общий характер, я использую CakePHP для создания приложения.

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

Я также думал о разработке RESTful API на основе CakePHP, которым могли бы пользоваться как внешний, так и внутренний интерфейсы.

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

Ответы [ 2 ]

4 голосов
/ 26 ноября 2011

Я думаю, что лучше всего сохранить функциональность Admin и REST API в вашем основном приложении CakePHP. (Вы не указываете версию, но я предполагаю, что, поскольку вы создаете новое приложение, которое используете 2.0. У него есть некоторые преимущества ниже.)

Как уже упоминалось, вы можете сделать то, что называется prefix routing , что позволяет вам создавать специальные действия, которые только администраторы могут использовать в ваших существующих контроллерах. Полное объяснение приведено в документации по Prefix Routing .

Суть в том, что вы указываете нужный префикс в core.php :

Configure::write('Routing.prefixes', array('admin'));

Таким образом, переход к / admin / users / edit / 5 вызовет метод admin_edit нашего UsersController с передачей 5 в качестве первого параметра. Используемый файл представления будет /views/users/admin_edit.ctp.

Вы можете установить домашнюю страницу "admin" по умолчанию в rout.php :

Router::connect('/admin', array('controller' => 'pages', 'action' => 'index', 'admin' => true));

Что касается REST API , если вы используете 2.0, это встроенная функция, которую довольно легко включить. На странице REST есть хорошее вступление .

Для его активации необходимо просто добавить эти строки в rout.php :

Router::mapResources('recipes');
Router::parseExtensions();

Это устанавливает некоторые REST-маршруты по умолчанию:

#HTTP format URL.format              Controller action invoked
GET          /recipes.format         RecipesController::index()
GET          /recipes/123.format     RecipesController::view(123)
POST         /recipes.format         RecipesController::add()
PUT          /recipes/123.format     RecipesController::edit(123)
DELETE       /recipes/123.format     RecipesController::delete(123)
POST         /recipes/123.format     RecipesController::edit(123)

В документе больше информации, поэтому, пожалуйста, проверьте это.

1 голос
/ 26 ноября 2011

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

Так что все действия пользователя

/
/controller/
/controller/action

и т.д.

все действия администратора

/admin/
/admin/controller/
/admin/controller/action

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...