CakePHP - Как настроить несколько приложений / порталов, которые используют те же функции
Мы создаем веб-приложение для интрасети на PHP с помощью CakePHP. Однако у нас практически нет опыта работы с CakePHP. В нашей интрасети будет два пользовательских портала.
- Портал сотрудников
- Клиентский портал
Оба портала будут использовать одни и те же данные, но имеют собственный пользовательский интерфейс. Сотрудники могут видеть другие данные, чем клиенты, и наоборот.
Мы хотим построить центральное ядро для обоих порталов. Например, единая система аутентификации, форма контакта, функция уведомлений, та же информация нижнего колонтитула и т. Д. Мы хотим максимально использовать это центральное ядро, чтобы нам не приходилось переписывать код.
Мы используем Git для управления нашим кодом. Мы хотим создать ветку для обоих порталов и одну для общего ядра.
Мы надеемся, что вы можете дать нам несколько советов о том, как настроить это с CakePHP.
- Является ли создание нескольких приложений хорошей идеей?
- Или мы должны просто запустить CakePHP и наше ядро на двух веб-серверах? (по одному на каждый портал)
- Или мы должны использовать плагины для основных функций?
- Или мы должны использовать один контроллер с несколькими представлениями (один для сотрудника и один для клиента?)
- Или что-то совершенно другое?
Спасибо за любой совет
3 ответа
Со временем вы начнете замечать сходство между двумя порталами и базой кода. Если они совместно используют одни и те же данные, почему у вас нет единой базы кода и у вас нет прав на то, что пользователи могут видеть на основе ролей? Нам пришлось сделать это недавно, когда мы объединили 3 страницы в 1. 1 страница была предназначена для администратора, а две другие - для других ролей. Затем пользователи начали запрашивать функции на странице 2, которые на странице 1 уже есть и т. Д. И т. Д., Это стало беспорядком, и мы решили объединить эти страницы в 1 и получить разрешения на то, что каждый пользователь может видеть в зависимости от их ролей. Также читайте больше о помощниках, так как это пригодится, чтобы вы не делали свою точку зрения раздутой.
По моему опыту, портал, как правило, представляет собой очень тонкий слой поверх некоторой инфраструктуры CRUD. Я думаю, что возможности для совместного использования кода между этими двумя приложениями очень ограничены. Вы можете поделиться авторизацией и аутентификацией... и это все, и я не знаю, хорошая ли эта часть (возможно, нет).
Если большая часть вашего кода уходит на построение представлений HTML, вы, скорее всего, получите два совершенно разных представления для сотрудника и клиента.
Как уже упоминал Айо... одни только разрешения будут разделять две группы пользователей, и вы можете воспользоваться макетом CakePHP или функцией тем, чтобы получить совершенно разные взгляды для каждой группы пользователей.
Вы также можете взглянуть на функцию плагинов CakePHP. Это позволяет легко добавлять новых функционалистов в существующее приложение, не вмешиваясь в существующую базу кода.