#php #phpstorm
Здравствуйте. Хотелось бы попросить совета, как правильно организовать структуру приложения. Я только учусь разработке на PHP. Не судите строго. Задание такое, необходимо создать приложение в котором пользователи могут общаться между собой. Будет личный кабинет пользователя, и будет админка, где админ может видеть всех пользователей на сайте. Не могу представить в голове структуру. На данный момент Вижу только такое: По папкам: auth - Страница авторизации; profile - Страница с личным кабинетом, куда пользователь попадет после авторизации; templates - header.php,footer.php и остальные файлы, все они будут, как шаблон сайта core - предположительно ядро, и через эту папку можно будет войти в админку; lib - другие функции... Вот из этого вопрос, как лучше организовать это.
Ответы
Ответ 1
У меня обычно для несложных приложений с нуля структура, позаимствованная из систем пэкиджей Linux и Windows, некоторый микс: В приложении есть модули Каждый модуль хранится в своей папке (это список папок, а не дерево) В этой папке есть подпапки, например, php, css, js, html, tpl Любое обращение, за исключением запросов к файлам (картинкам), производится только к одному скрипту: index.php, в котором настраивается autoload. Чтобы к index.php нельзя было обратиться напрямую, в файле .htaccess с помощью mod_rewrite задается переменная MODULE c соответствующим значением, например, admin или frontend (это названия модулей), которая будет видна в массиве $_SERVER Усли у заданного модуля есть контроллер, хоторый лежит в файле modulename/php/Ctrl.php, то index.php созздает экземпляр этого контроллера и запускает. Довольно удобно для небольших приложений без фреймворка, поскольку сразу понятно, какой файл где искать, в отличие от структур, в которых кучи однотипных файлов разных модулей свалены в одну папку, что требует еще и наличие установщика модулей.Ответ 2
Смотрите как это организовано в популярных фреймворках. Например: https://github.com/yiisoft/yii2-app-basic https://github.com/yiisoft/yii2-app-advanced https://github.com/zendframework/ZendSkeletonApplication Да тот же 1С-Битрикс установите - посмотрите структуру как делать не стоит или наоборот стоит (тут на вкус и цвет...) ;) А лучше на основе фреймворка и делать проект. Когда над вашим проектом будут работать другие люди - за самописное решение большого спасибо не скажут. Именованием файлов, стайлгайд, автолоадер и т.д. обратите внимание на http://www.php-fig.org/psr/. Если возникнет вопрос: а что изучать? Смотрите и отталкивайтесь от вакансий - что требуется и что чаще, а также вилку ЗП. И не PHP едины - это главное не забывайте.
Комментариев нет:
Отправить комментарий