Страницы

Поиск по вопросам

среда, 4 марта 2020 г.

Структура приложения PHP

#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 едины - это главное не забывайте.

Комментариев нет:

Отправить комментарий