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

Добро пожаловать, стремящиеся разработчики! Сегодня мы отправляемся на увлекательное путешествие через структуру приложения Laravel. Как ваш доброжелательный邻居-преподаватель информатики, я здесь, чтобы провести вас через все тонкости этой мощной PHP-фреймворк. Не волнуйтесь, если вы новички в программировании - мы начнем с азов и будем двигаться вверх. Так что возьмите杯 кофе и погружайтесь с нами!

Laravel - Application Structure

Общее представление

Прежде чем мы углубимся в детали, давайте на минутку поймем, почему структура Laravel имеет значение. Представьте, что вы строите дом. Вы бы просто начали Randomно забивать доски, не так ли? Вам нужен план, чертеж. Именно это и предоставляет структура Laravel - хорошо организованный чертеж для вашего веб-приложения.

Теперь давайте рассмотрим каждый основной каталог в Laravel:

App

Каталог app является сердцем вашего приложения Laravel. Это место, где живет большая часть основного кода вашего приложения.

Пример: Создание простого контроллера

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class WelcomeController extends Controller
{
public function index()
{
return view('welcome');
}
}

В этом примере мы создали простой контроллер под названием WelcomeController. Метод index возвращает представление под названием 'welcome'. Обычно это используется для отображения главной страницы вашего приложения.

Bootstrap

Каталог bootstrap содержит файлы, которые инициируют фреймворк. Обычно вам не нужно что-то менять здесь, но полезно знать, что он существует.

Config

Как следует из названия, каталог config содержит все файлы конфигурации вашего приложения.

Пример: Изменение названия приложения

В config/app.php:

'name' => env('APP_NAME', 'My Awesome Laravel App'),

Эта строка устанавливает название вашего приложения. Функция env проверяет, есть ли значение APP_NAME в вашем файле .env. Если нет, используется значение по умолчанию 'My Awesome Laravel App'.

Database

Каталог database содержит ваши миграции базы данных, фабрики моделей и семена. Представьте миграции как систему управления версиями для вашей схемы базы данных.

Пример: Создание простой миграции

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}

public function down()
{
Schema::dropIfExists('users');
}
}

Эта миграция создает таблицу 'users' с колонками 'id', 'name', 'email' и метками времени. Метод down позволяет вам отменить миграцию, если это необходимо.

Public

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

Resources

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

Пример: Создание простого представления

В resources/views/welcome.blade.php:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to My App</title>
</head>
<body>
<h1>Hello, {{ $name }}!</h1>
</body>
</html>

Это представление использует тег {{ $name }} для замены на фактическое значение $name при отрисовке представления.

Storage

Каталог storage содержит ваши скомпилированные шаблоны Blade, файловые сессии, файловые кэши и другие файлы,生成的 фреймворком.

Tests

Каталог tests содержит ваши автоматические тесты. Laravel предоставляет удобный тестовый фреймворк из коробки.

Пример: Написание простого теста

<?php

namespace Tests\Feature;

use Tests\TestCase;

class ExampleTest extends TestCase
{
public function test_the_application_returns_a_successful_response()
{
$response = $this->get('/');

$response->assertStatus(200);
}
}

Этот тест проверяет, возвращает ли Главная страница вашего приложения успешный HTTP-статус (200).

Vendor

Каталог vendor содержит ваши зависимости Composer. Вы не должны напрямую изменять что-либо в этом каталоге.

Команды Artisan Laravel

Laravel предоставляет мощный интерфейс командной строки под названием Artisan. Вот таблица некоторых часто используемых команд Artisan:

Команда Описание
php artisan serve Запускает сервер для разработки
php artisan make:controller Создает новый контроллер
php artisan make:model Создает новую модель
php artisan migrate Запускает миграции базы данных
php artisan tinker Взаимодействует с вашим приложением

Запомните, эти команды - ваши друзья. Они могут сэкономить вам много времени и усилий!

Заключение

И вот мы и arrived, друзья! Мы совершили быстрое путешествие через структуру приложения Laravel. Помните, как и при обучении любому новому навыку, овладение Laravel требует времени и практики. Не отчаивайтесь, если что-то не сразу получается - это все часть процесса обучения.

Заканчивая, я вспоминаю историю из моих первых дней программирования. Я однажды потратил несколько часов на отладку проблемы, только чтобы понять, что у меня была опечатка в имени файла. Урок? Обратите внимание на детали, но также не забывайте отступить и посмотреть на большую картину.

Структура Laravel может показаться сложной в начале, но она разработана, чтобы упростить вашу жизнь в долгосрочной перспективе. Это как учиться ездить на велосипеде - сначала это может быть неуверенно, но как только вы научитесь, вы будете мчаться вперед без проблем.

Продолжайте программировать, продолжайте учиться и, что самое главное, получайте удовольствие! Помните, каждый专家 был когда-то новичком. У вас получится!

Credits: Image by storyset