Laravel - 应用程序结构

欢迎,有抱负的开发者们!今天,我们将开始一段激动人心的旅程,深入了解 Laravel 应用程序的结构。作为你友好的计算机科学老师,我将引导你了解这个强大的 PHP 框架的方方面面。如果你是编程新手,不用担心 —— 我们将从基础知识开始,逐步深入。那么,来一杯咖啡,让我们开始吧!

Laravel - Application Structure

大局观

在我们深入细节之前,让我们先花点时间理解为什么 Laravel 的结构很重要。想象你正在建造一座房子。你不会随意地将木板钉在一起,对吧?你需要一个蓝图,一个计划。这正是 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', '我的惊人的 Laravel 应用程序'),

这行代码设置了你的应用程序的名称。env 函数检查 .env 文件中是否有 APP_NAME 值。如果没有,它将使用 '我的惊人的 Laravel 应用程序' 作为默认值。

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');
}
}

这个迁移创建了一个带有 'id'、'name'、'email' 和时间戳列的 'users' 表。down 方法允许你在需要时反转迁移。

Public

public 目录包含 index.php 文件,它是所有请求进入应用程序的入口点。这个目录还包含了你的资产,如图像、JavaScript 和 CSS。

Resources

resources 目录包含你的视图以及原始的、未编译的资产,如 LESS、SASS 或 JavaScript。

示例:创建一个简单的视图

resources/views/welcome.blade.php 中:

<!DOCTYPE html>
<html>
<head>
<title>欢迎来到我的应用</title>
</head>
<body>
<h1>Hello, {{ $name }}!</h1>
</body>
</html>

这个视图使用了 Laravel 的 Blade 模板引擎。{{ $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 依赖项。你不应该直接修改这个目录中的任何东西。

Laravel 的 Artisan 命令

Laravel 带有一个强大的命令行界面,称为 Artisan。以下是一些常用的 Artisan 命令表格:

命令 描述
php artisan serve 启动开发服务器
php artisan make:controller 创建一个新的控制器
php artisan make:model 创建一个新的模型
php artisan migrate 运行数据库迁移
php artisan tinker 与你的应用程序交互

记住,这些命令是你的朋友。它们可以为你节省大量时间和精力!

总结

好了,各位!我们已经快速浏览了 Laravel 的应用程序结构。记住,像学习任何新技能一样,掌握 Laravel 需要时间和练习。如果一开始事情不太顺利,不要气馁 —— 这都是学习过程的一部分。

在我们结束之前,我想起了一个我早期编程的故事。我曾经花了好几个小时调试一个错误,最后发现是我的文件名有一个打字错误。教训是什么?要注意细节,但也要记得退一步看大局。

Laravel 的结构一开始可能看起来很复杂,但它旨在让你在长期内更轻松。这就像学习骑自行车 —— 开始时可能会摇摇晃晃,但一旦你掌握了它,你很快就会顺畅地骑行。

继续编码,继续学习,最重要的是,享受乐趣!记住,每个专家都曾经是个新手。你可以做到的!

Credits: Image by storyset