Laravel 是一個功能強大且易於使用的 PHP 框架,他的出現提高後端開發效率並簡化常見的網頁開發任務;這個套件提供了優雅的語法、強大的 ORM、靈活的路由系統,以及其他多種有用的工具,使得網頁應用程序的開發過程更加高效和愉快。
創始人
Laravel 由 Taylor Otwell 於 2011 年創建。
版本演變
Laravel 自推出以來經歷了多次重大版本更新,不斷引入新特性和改進,例如 Laravel 5.x 引入了許多現代功能,Laravel 6.x 開始支持 LTS(長期支持)版本;這次紀錄是 PHP 8.1 搭配 Laravel 9.x
。
因為公司專案需求是 PHP 8.1 搭配 Laravel 9.x
,所以以下流程都是依照這個執行,如果有升級需求,只需要在安裝的時候,先到官網的 support policy 查看對應 PHP 版本即可!
安裝 PHP 8.1
先開啟一個資料夾準備練習用,ex. kuku
啟動終端機,確認本機的 php 版本,如果沒有,就要先安裝 php,語法:php -v
下載安裝 php
3.1 mac:brew 安裝下載後,下指令 brew install php@8.1
3.2 window:
step1 -> 進入官網,點選下載
step2 -> 解壓縮後重新命名資料夾(php-8.3.8),並且開啟資料夾找到 php.ini-development
改成 php.ini
step3 -> 打開 php.ini
,確認自己的環境,因為 DB 連線需要,搜尋 "extension" ,找到 extension=pdo_sqlite 刪除前面的 ";",再依照不同的環境變更設定檔案以下訊息。
☆ Window
搜索 "extension_dir" -> extension_dir = "ext",並且刪除前面的 ";"
☆ Linux
搜索 "extension_dir" -> extension_dir = "./",並且刪除前面的 ";"
step4 -> 建立環境變數:設定 > 關於 > 進階系統設定 > 環境變數> Path
安裝 Composer
cd ~
,並且下官網的指令sudo mv composer.phar /usr/local/bin/composer
,輸入後就會開始安裝 composerComposer 安裝指定 Laravel 版本
進入一開始設定的 kuku 資料夾,bash/zsh 語法:cd kuku
因為是安裝 Laravel 9.x 版本,所以跟原來官網寫的會有些許不同,可以參考 Composer 安装指定 Laravel 版本,下官網指令 composer create-project laravel/laravel:^9.0 example-app
🐘 補充說明:
- 上面提到的指令其中 example 要改成自己的專案名稱,例如我的練習專案名稱是 kuku,所以我要下的指令就是
composer create-project laravel/laravel:^9.0 kuku-app
- 我不確定是不是每間公司定義不同,但是我聽到的是後端沒有所謂的小駝峰,主要是用烤肉串表示,例如:php-elephant,後來陪伴我成長的指導者告訴我其實沒有一定,去翻閱很多 gitHub 作品也不一定,就依照各公司規定
在 kuku 的資料夾下可以看到有一個新增的 kuku-app 資料夾,下指令指向新增的資料夾 cd kuku-app
建立專案後,開一個新的終端機使用下指令 php artisan serve
啟動本機開發伺服器
接著可以收到一段訊息 INFO Server running on [http://127.0.0.1:8000],點擊鏈接可以看到成功安裝 laravel 的網頁畫面
🐘 補充說明:
http://127.0.0.1:8000,其中 http://127.0.0.1 → 本機的 IP;8000 → port
配置開發環境 (PHP,MySQL)
後端需要與資料庫串接,所以 database 資料夾主要放置資料庫內容,可以藉由以下指令執行未執行過的資料表搬遷語法(也可以順道檢查確認有沒有與資料庫串接)
php artisan migrate
如果出現提醒文字 WARN The SQLite database does not exist: laravel. 同時問要不要建立一個新的資料庫,回答 yes
database.php 中建立一個簡單的資料庫
// config > database.php
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
同時去 .env
把 DB_CONNECTION 修改成新的 sqlite
在資料夾中找到剛剛建立的資料庫,理論上會建在 檔案名稱/database/migrations
,但是也可能在最外層的 檔案名稱/laravel
app/
:存放主要應用邏輯,如控制器、模型、服務提供者。config/
:配置文件。database/
:數據庫遷移和種子數據。public/
:公共資源,如 CSS、JavaScript 文件和圖片。resources/
:視圖文件和本地化文件。routes/
:路由定義文件。storage/
:儲存文件(如日誌、上傳文件等)。tests/
:測試文件。vendor/
:Composer 安裝的第三方包。
感謝之前閱讀過文章的夥伴和身邊跟著學習的人反饋問題,以下是比較大宗的問題反饋,希望有遇到的夥伴可以看看能不能解決
Illuminate\Foundation\Application‘ not found
參考文章:Fatal error: Class 'Illuminate\Foundation\Application' not found
收到反饋說:下指令 php artisan serve
後遇到這個問題!
我們當下是把終端機反饋的字段複製到 google 查詢,當時試過很多方法,卻沒發現最重要的東西...資料夾結構!!!
後來看到文章才去一一比對發現少了 vendor/
(Composer 安裝的第三方包)資料夾,為什麼會發生說真的不清楚,但是看到有前輩分享是 composer 版本問題,但是他也真的按照我給的步驟執行,我可以他不行,所以真因不可考,只能說請下以下指令讓他回歸正常!
composer create-project --prefer-dist laravel/laravel blog
版本問題為什麼不用安裝指令就好?其實一開始有用過 composer install
,但是他就是不裝呀!所以直接下大絕,結束這回合!
Illuminate\Database\QueryException
這裡我很抱歉!我本來寫在第二天,但是發現這樣會讓很多人的安裝資料庫過程報錯!
會出現這個錯誤是發生在下指令 php artisan migrate
,這是環境的問題,因為我是學習中所以暫時使用 sqlite
,所以 .env 設定是
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
接著一定要去 php.ini
,確認 extension=pdo_sqlite 還有 "extension_dir" -> extension_dir = "ext" 前面的 ";" 要刪除,之後重新下指令 php artisan migrate
開啟database出現二進位制異常
解決方法:開啟延伸模組安裝套件即可。
身為後端要學習修改資料庫內容,所以後來我選擇安裝 editor ,如果只有 viewer 就不能修改了。
打開 database 資料夾,找到 database.sqlite 點選兩下就可以看到表格畫面了!