Elaine's Blog 朝著 senior 前進的工程師

建置 Laravel 專案

2019-02-15
PHP

建立專案

可以利用 Laravel 安装器Composer 因為我懶得在全域用 Composer 安裝 Laravel 安装器,所以這邊使用 Composer 的方式安裝

  • 安裝 Laravel

    $ composer create-project laravel/laravel [project name]
    
    • --prefer-dist 會從 github 上下載 .zip
    • --prefer-source 會從 github 上 clone 源代碼
    • 指定版本 例如建立一個名為 demo 的 laravel 5.4 專案

      $ composer create-project --prefer-dist laravel/laravel demo "5.4.*"
      
  • 利用開啟本地伺服器來測試是否安裝成功 這時候就可以在 http://localhost:8000 看到頁面了

    $ php artisan serve
    
  • 若想指定監聽的 ip 與 port,可以用以下的方法

    $ php artisan serve --host 0.0.0.0 --port 8000
    

目錄說明

demo
|--public // 網站根目錄
|--config // 存放所有 Laravel 框架的設定、配置文件
|--storage // 存放編譯後的 Blade 模板、session、框架產生的檔案以及系統的 log 檔案
|--Bootstrap //存放框架啟動及自動加載相關的檔案
|--database // 存放資料庫的遷移以及填充文件
|--resources // 存放 blade 的模板 html、LESS、SASS、CoffeeScript 的原始文件,以及多國語言資料
|--routes // 預設的路由文件
    |--web.php
    |--api.php
    |--console.php
|--tests // PHPUnit 測試的相關文件
|--vendor // Composer 依賴模組
|--app // 系統的核心代碼全放在這邊,在這邊開發
  • 大部分撰寫的應用程式會存放於 app 目錄中

    • 預設情況下,這個目錄使用命名空間 App 並藉由 Composer 自動載入(採用 PSR-4 自動載入標準)

      app
      |-- Console // 包含應用程式所有自定義的 Artisan 指令
      |-- Events // 預設不存在,會在你使用 event:generate 或 make:event 指令以後才會被建立,放置事件類別
      |-- Exceptions // 包含應用程式的異常處理程序
      |-- HTTP // 包含了控制器、中介層以及表單請求
      |-- Jobs // 預設不存在,可以通過執行 make:job 指令建立,用於存放佇列任務
      |-- Listeners // 預設不存在,可以通過執行 event:generate 和 make:listener 指令建立,用於處理事件的類別(事件監聽器)
      |-- Mail // 預設不存在,但是可以通過執行 make:mail 指令產生,包含郵件傳送類別
      |-- Notifications // 預設不存在,你可以通過執行 make:notification 指令建立,包含應用程式傳送的所有通知
      |-- Policies // 預設不存在,你可以通過執行 make:policy 指令來建立,包含了所有的授權策略類別,策略用於判斷某個使用者是否有許可權去訪問指定資源
      |-- Providers // 包含應用程式的服務提供者
      

基本設定

應用程式金鑰

Laravel 安裝好後,原則上是不需要其他的設定就可以開始使用了 但如果您不是使用 composer 安裝的話,就要記得在一開始時透過 artisan 產生一組網站用的密鑰,來確保 session 以及其他加密的資料是安全的

$ php artisan key:generate

連結資料庫

  • 修改 .env

    • 如果使用 composer 安裝的話,會自動將 .env 建立起來
    • 如果沒有 .env 的話,也可以複製 .env.example 文件並重命名為 .env
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=demo
    DB_USERNAME=root
    DB_PASSWORD=password
    

開啟權限

  • 開啟 bootstrap cache 目錄權限,要允許 nginx 寫入權限,所以視你的情況調整權限大小

    $ chmod -R 777 bootstrap/cache/
    
  • 開啟 storage 目錄權限,要允許 nginx 寫入權限,所以視你的情況調整權限大小

    $ chmod -R 777 storage/
    

參考資料


Content