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