Laravel - Packages - Sail

前言

學習一個框架, Ray 的想法是, 在深入理解底層實作的原理之前, 應該先知道這個框架的 使用方法; 先學習怎麼使用這個前人造的輪子, 再學習怎麼樣一個輪子。
所以本篇文章重點在於細讀官方文件, 並將內容理解後以 Q&A 的方式記錄下來, 加速學習以及查詢。


# 進階技巧

# 只安裝 docker, 不裝任何其他軟體運行 sail

  • 安裝套件

    docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php80-composer:latest \
    composer install --ignore-platform-reqs
  • 如果需要安裝 sail, 請把上面的 command 改成 composer require packageName

  • 安裝 sail

    docker run --rm \
    -it \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php80-composer:latest \
    php artisan sail:install
  • 最後, 運行 sail up

# Installation & Setup

# Installing Sail Into Existing Applications

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    composer require laravel/sail --dev
  • Answer:
    如果是舊專案, 可以使用 composer 安裝 sail
以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    php artisan sail:install
  • Answer:
    當專案的 vendor 中 sail 時, 可以使用 artisan 指令, 當 vendor 中的 docker-compose.yml publish 到 project root

# Configuring A Bash Alias

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    ./vendor/bin/sail up -d
  • Answer:
    當 docker-compose.yml file 已經 publish 到 project root 後, 可以使用 ./vendor/bin/sail up 來啟動 container 在背景
以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    alias sail='bash vendor/bin/sail'
  • Answer:
    如不想一直打 ./vendor/bin/sail 的話, 可設定 alias

# Starting & Stopping Sail

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    sail down
  • Answer:
    stop 跑在 background 的 container

# Executing Commands

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    sail artisan queue:work
  • Answer:
    使用 sail 執行位於 sail container 中的 artisan

# Executing PHP Commands

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    sail php --version

    sail php script.php
  • Answer:
    執行位於 sail container 中的 PHP
以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    sail composer require laravel/sanctum
  • Answer:
    執行位於 sail container 中的 composer

# Installing Composer Dependencies For Existing Applications

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php80-composer:latest \
    composer install
  • Answer:
    使用 docker 拉取 laravelsail/php80-composer image 來安裝專案的 composer dependency

# Executing Node / NPM Commands

以下的 Laravel Testing example code 的意思是?
  • Example:
    <?php
    sail node --version

    sail npm run prod
  • Answer:
    使用 sail 來調用 container 內的 node 以及 npm

# Running Tests

以下的 Laravel example code 的意思是?
  • Example:
    <?php
    sail test

    sail test --group orders

    sail artisan test
  • Answer:
    使用 sail run php test 或 artisan test

# Laravel Dusk

Front-end layout

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×