Меню Закрыть

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

В предыдущем посте мы создали базовое приложение Laravel 8  и познакомились с первой командой «php artisan server», которая запустила наше приложение на локальном сервере.
Давайте вместе рассмотрим структуру Laravel 8 приложение. Я буду использовать PhpStorm (коммерческая кросс-платформенная интегрированная среда разработки для PHP). Вы можете использовать любой другой редактор кода VS Code, Atom, Sublime Text 3.

И так, приступим, открываем наше приложение example-app в редакторе кода PhpStorm.

1. Папка app

В данной папке хранится  ядро нашего приложения. Именно в этой папке будут находиться почти все наши классы, функции и в целом логика приложения. 

2.Папка bootstrap

Здесь мы храним файлы, которые загружают фреймворк и настраивают автозагрузку. Также в bootstrap находится папка cache, которая содержит сгенерированные Фреймворк файлы для оптимизации производительности. Например: кэш — файлы маршрутов и сервисов.

3.Папка config

В этой папке вы найдете различные файлы, необходимые для настройки базы данных, сессий, электронных писем, приложений, служб и т. д. 

4.Папка database

Содержит миграции и классы для наполнения  начальными данными вашей Базы Данных. При не необходимости её можно использовать для хранения базы данных SQLite.

5.Папка public

Папка public содержит файл index.php, который является входной точкой для всех запросов, поступающих в наше приложение. Также эта папка содержит ваши ресурсы, такие как изображения, JavaScript, CSS

6.Папка resources

Папка содержит ваши представления, а так же сырые, не компилируемые ресурсы, такие как LESS, SASS, JavaScript.

Здесь же находятся все «языковые» файлы.

7.Папка routes

Данную папку рассмотрим подробнее, так как она хранит в себе все определения маршрутов вашего приложения. По умолчанию в Laravel встроенной три файла маршрутов :

web.php — содержит маршруты, которые RouteServiceProvider помещает в группу посредников web, которая обеспечивает состояние сессии, CSRF-защиту и шифрование cookie. Если ваше приложение не предоставляет «stateless» RESTful API, то скорее всего все ваши маршруты можно определить в файле web.php.

api.php -содержит маршруты, которые RouteServiceProvider помещает в группу посредников api, которая обеспечивает ограничение скорости. Эти маршруты должны быть «stateless», т.е. входящие через эти маршруты запросы должны быть аутентифицированы с помощью токенов и они не будут иметь доступа к состоянию сессии.

console.php — то место, где вы можете определить все свои консольные команды на основе замыканий. Каждое замыкание привязывается к экземпляру команды, обеспечивая простое взаимодействие с методами ввода/вывода каждой команды. Несмотря на то, что в этом файле не определяются HTTP-маршруты, в нём определяются консольные входные точки (пути) в ваше приложение.

channels.php — вы можете зарегистрировать все каналы трансляции событий, которые поддерживает ваше приложение.

8.Папка storage

Содержит скомпилированные Blade-шаблоны, файл-сессии, кэш файлов и другие файлы, создаваемые фреймворков. Эта папка делиться на подпапки app, framework и logs. В папке app можно хранить любые файлы, генерируемые вашим приложением. В папке framework хранятся создаваемые фреймворков файлы и кэш. А в папке logs находятся файлы журналов приложения. 

Папку storega/app/public можно использовать для хранения пользовательских файлов, таких как аватарки, которые должны быть доступны всем. Вам надо создать символьную ссылку на public/storage, которая ведёт к этой папке. Вы можете создать ссылку командой «php artisan storage:link».

Папка storage по умолчанию:

Папка storage и public после использования команды «php artisan storage:link» :

9.Папка vendor

Папка vendor содержит ваши COMPOSER — зависимости. Пакеты  Laravel, который помогают работать вашему приложению.

10.Файл .env

Данный файл является файлом настройки вашего приложения, где генерируется уникальный ключ вашего приложение. Тут же указывается название проекта, подключается база данных, настраиваться длительность сессии, указываются данные для подключения в приложения email адреса  для дальнейшего его использования, как отправителя сообщений на email адреса пользователей от лица приложения. 

Для того чтобы сгенерировать ключ, необходимо использовать команду «php artisan key:generate».

				
					APP_NAME=Laravel //название приложения
APP_ENV=local
APP_KEY=base64:rhylJxZ2KJe1+eGmv4+Xqen18Q8SkaYiQYEyZ9mNdVY= //уникальный ключ приложения
APP_DEBUG=true //вывод ошибок включен false -выключен
APP_URL=http://localhost //адрес приложения

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql //база данных mysql
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=laravel //название базы данных
DB_USERNAME=root // имя пользователя
DB_PASSWORD= //пароль пользователя

BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120 //длительность жизни сессии

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

//настройка email адреса 
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

				
			

В следующем посте мы создадим базу данных, подключим её в наше приложение. И посмотрим как работают миграции в Laravel.

Добавить комментарий

Ваш адрес email не будет опубликован.

>