Как организовать структуру самописного PHP проекта?

Я начинаю писать самописный проект с нуля, без каких-либо фреймворков, но с композером, используя PSR-4
Пока у меня есть такая структура:
├── config              # Для всех конфигов
├── public              # Для публичного контента
│   └── index.php       # Точка входа
├── src                 # "App\" для автолоуда, непосредственно приложение
│   ├─ Lib              # Классы приложения. Вопрос связан с этим моментом

В папке Lib у меня всякие классы, нужные для приложения, будь то класс для работы с БД, или же для работы с I\O. Вопрос: могу ли я называть это libами, правильно ли обозвал папку? Понятное дело, что я могу хоть в честь своей кошки назвать папку, но как будет.. Правильнее? Выразительнее? Назови я её Classes, было бы.. Хм. Странно (для нэймспейса) App\Classes\DatabaseManager
  • Вопрос задан
  • 1138 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
но как будет.. Правильнее? Выразительнее? Назови я её Classes, было бы.. Хм. Странно (для нэймспейса) App\Classes\DatabaseManager
Правильнее все же разделить на Model/Controller/View, ибо это самый логичный с точки зрения жизненного цикла пхп способ (да и не только пхп). Все что работает с сущностями - модели, отображения в хтмл/хмл/жсон - вьюшки, конторллеры... ну - контроллеры собсно. Если у вас есть вещи базового характера - ДБ b прочие - как раз lib (так как они являются по сути "сторонними" приложениями /библиотеками, которые в процессе разработки практически не меняются).

├── config              # Для всех конфигов
├── public              # Для публичного контента
│   └── index.php       # Точка входа
├── src                 # "App\" для автолоуда, непосредственно приложение
│   ├─ Controllers 
│   │   ├─SomeController.php
...
│   ├─ Models
│   │   ├─User.php
...
│   ├─ Views
│   │   ├─index
│   │   │   ├─index.php
...
│   ├─ Lib
│   │   ├─DatabaseManager.php
...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
humiliation
@humiliation
Чем больше знаю - тем больше дурак
https://www.php-fig.org/

выбирайте любую удобную вам, но придерживайтесь PSR.
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988
Не мешайте в одну кучу, то что может пригодится в другом инстансе проекта и требуемое только конкретному
- app
.|- config
.|- controler
.|- models
.|- view
-src - тут ваши либы
-vendors - чужие
-public - web root
Ответ написан
Комментировать
php666
@php666
PHP-макака
никаких папок lib
откройте любой фреймворк - там все построено на пространстве имен.

касательно МВС всё уже сказали, но крайне советую не класть все подряд в папки Model/Controller/View, а создать МОДУЛЬНОСТЬ, когда каждый модуль в своей директории (в своем пространстве имен).
Посмотри как у меня во фреймворке сделано. А вот по этой ссылке скелетон. Обрати внимание на директорию Module как во фрейме, так и в скелетоне. Там лежат модули, которые как кирпичики теоретически можно переносить из одного проекта в другой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы