iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
0
Modern Web

Laravel 8: For Beginners系列 第 1

Introduction

前言

打開各式求職網站,Laravel 儼然已經成為 PHP 求職者的最優先選擇。

不否認 Laravel 其實存在相當多缺點:

  • 效能低落:在 2020 年 5 月的效能測試中倒數
    • 不過 Django 跟 Rails 更低就是了
    • 學習曲線陡峭
    • 許多語法糖,雖然方便但卻增加入門難度
    • 來源於其它框架的思想,雖然便於使用但觀念複雜

然而,它卻成為 PHP 的標竿而大紅大紫,其理由不外乎:

  • PHP 社群龐大
  • 能夠快速開發產品原型(Prototype)
  • 龐大的套件庫
  • 與「現代」的 Web 技術接軌
    • Message Queue
    • WebSocket

需求

  • 對 PHP 語法有概念
    • 本系列不是 PHP 教學,不會從 PHP 的基礎開始說明
  • Unix-like 的環境
    • macOS 或 Linux
    • 雲端服務
      • gitpod.io、AWS cloud9
    • WSL (Windows Subsystem Linux)
  • PHP 運行環境
    • PHP 7.3 以上,推薦 PHP 7.4
    • PHP Extensions
      • 可以使用 php -m 確定是否有安裝
      • 可以安裝 XDebug 作為 Debugger
  • 習慣的文字編輯器
  • Docker 運行環境

一些注意事項

  • 不建議使用整合式 PHP 環境安裝:如 AppServ、LNMP、WNMP 等
    • 它們不容易被更新或安裝其它的 PHP Extension
    • 它們時常綑綁了一堆軟體,但是對於新手而言越精簡越好
    • 對於一些必要服務(如 Redis, MySQL 等),本系列會用 Docker 啟動
  • 不建議使用 IDE:如 PHPStorm
    • 通常它們功能非常強大,對於新手而言這容易搞壞胃口
  • 不建議使用 Windows
    • Windows 存在部份軟體的相容性問題
    • 雖然 WSL 很好的彌補了過去的部份缺陷,但是它設定上的複雜度遠高於其它 Unix-like 系統
  • 雖然不會特別提到,但是建議熟悉 git 的基本運作原理與操作

綱要

安裝與設定

簡介 Laravel 基礎安裝與設定方式,會用 Docker 設定部份常用的基礎服務(如 DB, Redis 等)。

核心功能介紹

簡介 Laravel 核心功能

  • 路由(Routing)
  • 控制器(Controller)
  • 視圖(View)
  • 中介層(Middleware)
  • 請求、驗證與回應(Request, Validation and Response)
  • Database Model

在這部份介紹中,我並不會詳細去介紹所有核心功能的內容,只會輕輕帶過一些我覺得比較重要的 Feature。往後的專案製作若有使用到比較進階的功能才會順便介紹。

專案製作

視情況每幾天製作一個小型的專案,順便介紹一些 Laravel 的進階功能

佈署

簡介 PHP 專案佈署的方式,並加入 CI 流程,預計採用 GitHub Action

寫作習慣

程式碼

  • 對於有指定檔案位置的,會以單行註解的方式解釋路徑。
  • 對於不在關注範圍內的程式,會以 // ... 的形式表示簡化。
<?php

// config/app.php
return [
	// ...
	'name' => 'Laravel',
	// ...
];
  • 若程式有任何回傳值,會以 // [value] 的方式在該行末尾提示
<?php

config('app.name'); // Laravel

指令

  • 對於需要自行輸入的指令,會以 $ 開頭
$ echo "Hello World"
  • 若是位於其它的 Shell(如 Psysh)中,會以 > 開頭,其前方會說明是哪個 Shell
(tinker) > Illuminate\Support\Str::random(30);
  • 對於指令輸出,會直接顯示
$ echo "Hello World"
Hello World
(tinker) > Illuminate\Support\Str::random(30);
=> "1wXnqSvj76sWrMU4FOWyHltya5HAHs"
  • 對於過長的輸出,會以 ... 簡略顯示重點部份
$ printenv
...
PATH=/bin:/usr/bin:/usr/local/bin
...
  • 對於使用者自行決定的內容,以 [] 作為標記
  • 若為非必要參數,則以 {} 作為標記
$ echo [greeting]
$ echo [greeting1] {greeting2}

下一篇
Installation
系列文
Laravel 8: For Beginners14

尚未有邦友留言

立即登入留言