Как лучше организовать админку?
73 повідомлення
#14 років тому
Application
|- admin/
|- controller/
|- model/
|- view/
|- users/
|- controller/
|- model/
|- view/
|- classfields/
|- controller/
|- model/
|- view/
|- gallery/
|- controller/
|- model/
|- view/
modules
|- menu/
|- controller/
|- model/
|- view/
|- user_menu/
|- controller/
|- model/
|- view/
|- banners/
|- controller/
|- model/
|- view/
library
config
tmp
public
|- js/
|- css/
|- image
то есть админка будет как компонет сайта
второй вариант полностью отдельная директория со своими контроллерами и бутстерпом
public
|- admin
|- models
|- view
|- controllers
|- library
|- index.php
|- js/
|- css/
|- image
application
|- users/
|- controller/
|- model/
|- view/
|- classfields/
|- controller/
|- model/
|- view/
|- gallery/
|- controller/
|- model/
|- view/
modules
|- menu/
|- controller/
|- model/
|- view/
|- user_menu/
|- controller/
|- model/
|- view/
|- banners/
|- controller/
|- model/
|- view/
library
config
tmp
либо третий вариант полностью отделить от сайта и разместить на поддомене
посоветуйте кто как реализовывал, на счет первого варианта я еще сам пока не понимаю как всё удобно сделать
1316 повідомлень
#14 років тому
Лично я , в случае с MVC использую по одному контроллеру на frontend, backend и уже сколько угодно моделей. Как по мне - большое кол-во контроллеров неудобно и не красиво.
3240 повідомлень
#14 років тому
Тут нужно смотреть, какие требования выдвигаются к проекту. Функциональные требования, требования производительности, безопасности, и т.д.И только потом уже думать над струкрурой сайта и разрабатывать архитектуру.
А так, не зная требований и деталей, подсказать "как организовать админку" невозможно, так как возможны десятки, если не сотни, вариантов.
Например, существует такой принцип: админку имеет смысл полностью, логически и физически, отделить от того, что доступно извне простым пользователям (не админам).
То есть админка вообще может быть отдельным независимым проектом, доступным только администрации, и предназначенным для изменения БД, настроек, файлов и т.д., которые уже используются основным проектом — общедоступным сайтом.
Это наиболее правильно с точки зрения безопасности.
Например, в зависимости от уровня паранойи, в админку могут заходить только с отдельного поддомена или домена, или даже только из корпоративного интранета, под отдельным паролем, не хранящимся в таблице паролей юзеров, с защитой по IP, только по доверенным сертификатам... админка может находиться в отдельных директориях со своими правами доступа, не являющхся поддиректориями основного сайта, или даже может вообще быть на другом хосте, и т.д.
В общем, нужны детали, а абстрактно насоветовать можно что угодно.
1649 повідомлень
#14 років тому
Цитата ("Enkvist"):Лично я , в случае с MVC использую по одному контроллеру на frontend, backend и уже сколько угодно моделей. Как по мне - большое кол-во контроллеров неудобно и не красиво.
ага. Лучше сделать по одной папке MODEL, VIEW, CONTROLER и уже в них все организовать как надо.
Для админки делаю отдельную папку в которой все построено по той же логике.
1316 повідомлень
#14 років тому
tvv, это Вы так зря. Если бы человеку нужно было "что-то особое" - он бы это конечно же указал. Судя по построению вопроса, понятно, что нужно некое простое решение, которое при этом не будет костылем. Вот и все.
1316 повідомлень
#14 років тому
speedi, /js/
/css/
/images/
/public/
/upload/
/app/
/controller/
frontend.php
backend.php
/model/
/frontend/
/backend/
/views/
/frontend/
/backend/
/library/
/config/
index.php
73 повідомлення
#14 років тому
Это у вас получает очень жирный контроллер и модель?? всё в одном файле все страницы, это максимум подойдет для блога или пару страничной визитки... но для крупного проекта со множеством страниц и блоков это не подойдет..а что если сделать так
frontend
|- users/
|- controller/
|- model/
|- view/
|- classfields/
|- controller/
|- model/
|- view/
|- gallery/
|- controller/
|- model/
|- view/
backend
|- sitesettings/
|- controller/
|- model/
|- view/
|- users/
|- controller/
|- model/
|- view/
|- classfields/
|- controller/
|- model/
|- view/
|- gallery/
|- controller/
|- model/
|- view/
modules
|- menu/
|- controller/
|- model/
|- view/
|- user_menu/
|- controller/
|- model/
|- view/
|- banners/
|- controller/
|- model/
|- view/
library
config
tmp
public
|- js/
|- css/
|- image
1316 повідомлень
#14 років тому
speedi, 1) Если Вы знаете, что такое контроллер , тогда Вы понимаете, почему сильно жирным он не будет.
2) Для моделей у меня отдельная папка.
3) Если Вас устраивает структура с кучей папок, файлов. Кучей инклюдов и всякой другой фигни - в таком случае у Вас просто идеальная модель.
87 повідомлень
#14 років тому
Не совсем ясно, зачем так ветвить структуру. Как было показано выше, вполне достаточно три директории - controller, model, view. Ну в директории controller можно создать два подраздела - frontend и backend. Можно обойтись и двумя файлами контроллеров, если всю логику выносить отдельные файлы. На каждое действие контроллера создается свой action, а в файле контроллера это все просто собирается. Таким образом кстати можно одно действие использовать в нескольких контроллерах. И вообще, если разрабатывается серъезное приложение, то почему бы не использовать фреймворк, тот же yii например.
1316 повідомлень
#14 років тому
segoddnja, я в свое время в CodeIgniter копался ... там жесть. столько автологики. если ее всю убрать - реальный прирост по скорости.
73 повідомлення
#14 років тому
Какой бы худой не был контроллер при больших объемах страниц и действий он станет жирным,модели, да, вижу..
я не увидел ваше сообщение выше про требования, и забыл их указать... проект планируется средне нагруженный, 1000-2000 человек онлайн, будет соц сеть авто любителей..
будут три типа пользователей, админ, модер, юзер
может быть все таки стоит полностью отделить бэкенд от основного сайта??
Фреймфорк не хочу использовать из за лишних библиотек, всё понятно их можно просто не подключать... но и все равно даже на полностью голом зенде, посмотрев get_included_files офигеваешь..
87 повідомлень
#14 років тому
Цитата ("Enkvist"):segoddnja, я в свое время в CodeIgniter копался ... там жесть. столько автологики. если ее всю убрать - реальный прирост по скорости.
Тогда советую в yii покопаться.

1316 повідомлень
#14 років тому
>может быть все таки стоит полностью отделить бэкенд от основного сайта??я бы не отделял. А Вы уж думайте ) может стоит. а может и нет?
>Какой бы худой не был контроллер при больших объемах страниц и действий он станет жирным
если пара тыс. строк - это сильная проблема.. то можно еще один файл под контроллер выделить.
3240 повідомлень
#14 років тому
Повторюсь, с точки зрения безопасности, админку имеет смысл делать отдельно от публичной части сайта. И логически, и физически.И так имеет смысл делать всегда, если по какой-либо специфической причине в проекте не требуется иного.
Цитата ("speedi"):
будут три типа пользователей, админ, модер, юзер
может быть все таки стоит полностью отделить бэкенд от основного сайта??
Да, классическая схема.
Я бы тут выделил три отдельных проекта: паблик сайт (в том числе с кабинетами для залогинившихся юзеров), рабочее место модератора, и админка.
Конечно, с общей БД, но с разными пермиссиями на те или иные таблицы.