Laravel - 應用程式結構
歡迎,有志者們!今天,我們將要開始一段令人興奮的旅程,探索 Laravel 應用程式的結構。作為你們親切友善的計算機科學老師,我將指導你們了解這個強大的 PHP 框架的內外。如果你是編程新手,別擔心——我們會從基礎開始,逐步進階。所以,來一杯咖啡,我們一起來深入探討!
大局觀
在深入細節之前,讓我們先花一會兒時間了解為什麼 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