本文同步發於我的部落格 - https://lajiooh.com/2020/09/19/ithome2020-day4/
參加鐵人賽的第一個周末,真是無比難熬,只想要整天躺在家裡看 Netflix XDDDDD,不過才參加第四天就放棄太鳥了,所以我覺得還是要堅持下去RRRRRRRR
說實話,我覺得自己前幾天的文章稍嫌零散,應該要帶大家看過 Laravel 專案的目錄,再進行 .env 的設定才對,搞得整個文章牛頭不對馬嘴,請大家多見諒,所以在今天,我要跟大家介紹一下目前在開發上使用的一些工具以及目錄結構。
我平常的開發都是以 VSCode 為主,這是微軟開發的 Open Source 專案,在推出的這幾年已逐漸成為最主流的文字編輯器,由於生態系龐大,因此也有許多不錯的 plugin 可以使用,這邊介紹幾個我常用的 Laravel 開發工具。
PHP Intelephense
這個工具會提供開發者 PHP 語法的提示,算是非常好用的工具,另外開發團隊也提供 Licence 購買,可以獲得更完整的功能,我自己有買,約合台幣 $340 非常划算,如果你是常使用 PHP 進行開發的人建議都可以買。
PHPfmt - PHP formatter
這是 PHP 的格式美化工具,現代的 PHP 有其寫作風格規範如 PSR-1、PSR-2 等,因此這個工具可以幫助你在寫程式的同時,自動進行程式碼的格式化。
Laravel Blade Snippets
這個外掛能夠自動完成某些 Laravel 的程式碼片段。由於 Laravel 的開發團隊在 Laravel 5 後的版本已開始加快版本的更新,幾乎是半年就推出新的版本。在這一年中,Laravel 的版本已從 6 升級到了 8,目前這個外掛有支援到 Laravel 7,因此若是使用 8 開發的人可能要再稍等一下。
Remote SSH/WSL
這個可以說是 VSCode 中非常強大的外掛之一,他可以協助你直接連接自己電腦本地端的 WSL,或是開在遠端的 Linux 機器,如果你希望能夠連到遠端執行程式可以下載這個外掛,不過因為公司有很多專案已上 Production,因此除非是不可抗力的因素,我盡量還是在本地開發後再 commit code 到遠端,以免影響在產品線上的服務。
如下,就是 Laravel 的專案目錄結構囉!
app.php
主要功能是啟用 Laravel 這個框架,裡面也有 cache
資料夾,主要是儲存如 Route 以及 Service 的快取,以提升框架的效能index.php
是所有請求的入口,也會設置好 PHP 的 Autoload,除此以外,編譯好的 assets 例如 js、css 及 image 等資料皆可放在這個目錄下。web.php
api.php
console.php
channels.php
,在我自己目前開發過的專案,大部分使用 web.php
api.php
就綽綽有餘了。
web.php
api.php
console.php
Closure
(閉包) 的指令,每一個 Closure
都能夠連結到一個 command,因此若是在 Laravel 應用中要定義一些 command 指令,也可在此設置。channels.php
app
用來儲存你這個應用程式產生的任何檔案;framework
儲存這個框架產生的檔案及快取;logs
包含了整個應用程式執行的日誌以及記錄。storage/app/public
下面,因此會需要下一個指令 php artisan storage:link command
建立 storage 的連結。Test
作為檔案字首,預設狀況下以 php vendor/bin/phpunit
指令進行測試。composer install
進行套件的安裝,之後就會產生此資料夾。--
這次重新整理了一下所有 Laravel 專案的結構,自己也在官方文件翻來翻去,很多用途也是我在寫這篇文章時整理出來才知道的,這樣系統性的整理對我來說也是更了解了這套框架的特性,今天就先到這邊囉!(來去看 Netflix 了 XD)