icon
learn-laravel-background-advantages-installation

2023年1月8日星期日 上午6:19

重新認識Laravel:背景故事、開發優點、安裝流程

斷斷續續都用咗 Laravel 一年了,一開始學嘅時候係因為兼職戈到啲項目係用 Laravel 寫,咁好理所當然我要幫手維護同加功能係現有項目到。可能因為部分嘅項目都係由過往嘅學生兼職寫,所以部分代碼都顯得不一致同凌亂,再加上佢地亦都唔著重代碼質量(對於強迫症嘅我好難受)。導致我對 Laravel 嘅印象一直都唔太好,而我嘅全端學習計劃又因為仲係前端進度到,係過去一年都無咩機會從零去學 Laravel
咁係最近我嘅計劃終於到後端嘅部分了,我先係用咗 Node.js / Express.js 體驗咗後端開發嘅正確流程同觀念,隨著慢慢步入後端嘅系統學習,過往工作上嘅疑慮都慢慢煙消雲散。咁係經過我整整100日嘅系統學習同個Blog Project後,我終於踏上咗重新學 Laravel 嘅路上。
我搵咗好多對於網上教學資源嘅評價,見到大部分人都會提起 Laracasts。如是者我就開始睇佢啲教學,一睇就發覺好高質量,亦都顛覆咗我對 PHP, Laravel 嘅印象。佢嘅教學係從零開始用 PHP 寫咗一個迷你 Laravel 出黎,可能觀眾戈一刻未發覺,但係對住咗 Laravel 成年嘅我,好快就發現佢嘅寫法同設計同 Laravel 都十分相似。就係咁,我就有一個好好嘅機會由底層出發去了解呢個框架。另外我都好推薦呢套紀錄片,裡面講述咗創辦人Taylor Otwell嘅熱情同堅持,令到我更加有動力去學好 Laravel

Laravel

就如官網的大標題所寫,這是一個為網頁藝術家打造的 PHP 框架。Taylor認為開發的過程應該是要享受的,所以 Laravel 也是使用著優雅且簡潔的代碼設計,也強調所有的特性都是由團隊深思熟慮後的產物。

Laravel 是在2011年出現的,而 PHP 是在1994開始出現的,在這將近20年中也有不少優秀的框架一直幫助著開發者。不過Taylor認為那時候使用的框架沒有很好地提供一些功能;例如權限與授權的功能,結果就是他開始寫出一套自己的框架出來了。在這過程中,他參考了許多其他框架中的優點再把這些結合到 Laravel 裡面。

Laravel的優點

1. 內置終端機指令:利用 artisan 可以很有效的提高開發體驗和速度,例如快速生成模板代碼、對數據庫的整理和操作、自定義指令等等。

2. 許多精心維護的套件:一些企業應用中很常見的功能,例如跟大平台公司用 OAuth 的使用者賬號授權、API與存取權限等等的,這些都可以通過 Laravel 維護的套件實現。

3. 安全性:對於網絡應用,縱使其他功能有多強大,安全性有擔憂的話還是沒有公司會採用的。而 Laravel 也是出了名安全的,通過內置的功能可以預防所有常見的惡意攻擊。例如XSS和SQL injection。

4. 社區支持:所有優秀的開源項目都需要有活躍的社團用戶去使用和維護,而 Laravel 也是經得起時間的考驗,時到今日在Github上面也擁有著72k的星星認可。

安裝流程

如果主機還沒有 PHP 則可以先安裝,安裝的方法好像有很多,視乎主機的系統,跟著官網的教程安裝。記得把 PHP 放進系統環境變量,方便後續使用。
# php -v

PHP 8.2.0 (cli) (built: Dec  6 2022 15:31:23) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.2.0, Copyright (c) Zend Technologies

ComposerPHP 的依賴包管理器,可以幫助開發者把別人的套件下載到本地進行開發。我們要學習的 Laravel 也把它們框架的安裝包放了上 Composer,所以我們可以先下載它。在Windows上可以直接下載安裝包,其他系統上則要在終端上安裝,詳情可以看官方的指示。

# composer -v

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.4.4 2022-10-27 14:39:29

Laravel 提供了開發者兩種方式去建造你的項目,把安裝包下載到主機上後再用指令建構項目、與直接下載不用安裝包。我們可以用直接下載的方法:

# composer create-project laravel/laravel:<"Laravel版本號"> <項目名稱> 

# composer create-project laravel/laravel:^9.0 basic-crud

Creating a "laravel/laravel:^9.0" project at "./basic-crud"
Info from https://repo.packagist.org: #StandWithUkraine
Installing laravel/laravel (v9.5.0)
...

安裝好之後就可以看到新建立的檔案了,進入這個目錄後可以看看 Laravel 的指令集 artisan 提供的指令有什麼:

# cd basic-crud

# php artisan

Available commands:
  about                  Display basic information about your application
  clear-compiled         Remove the compiled class file
  completion             Dump the shell completion script
  db                     Start a new database CLI session
...
當中的指令可以大大的提高開發者的效率!例如 make 的指令可以快速的建構代碼模板。

現在我們可以啟動 Laravel 的開發伺服器,然後再瀏覽器上看預設的網頁樣式。

# php artisan serve

INFO  Server running on [http://127.0.0.1:8000].

Press Ctrl+C to stop the server