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

這個迁移會創建一個 '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>歡迎來到我的應用程式</title>
</head>
<body>
<h1>你好,{{ $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 的結構起初可能看起來很複雜,但它設計來讓你長期以來的生活更輕鬆。這就像學騎自行車——起初可能會晃動,但一旦你掌握了要領,你會很快地騎著走。

持續編程,持續學習,最重要的是,要玩得開心!記住,每個專家都曾經是新手。你可以的!

Credits: Image by storyset