電商開發工程師面試題目

更新 2026.09.21

❶ 使用 Docker 建立方式(基本流程)

  1. 安裝 Docker:在本機安裝 Docker 與 Docker Compose。

  2. 建立專案目錄:例如 my-app/。

  3. 撰寫 Dockerfile:描述應用的環境(PHP、Composer 等)。

  4. 建立 docker-compose.yml:

    • 定義服務(如 PHP、Nginx、MySQL)。
  5. 建置與啟動容器:

    docker-compose up -d --build
  6. 進入容器操作:

    docker exec -it 
    <container_name> bash

❷ 如何 Docker 建立 Laravel 應用(簡易流程)

  1. 建立 Laravel 專案(可先用 Composer 或直接用 Laravel 官方 Docker image)。

  2. 建立 docker-compose.yml:

    services:
      app:
        build:
          context: .
          dockerfile: Dockerfile
        volumes:
          - .:/var/www
        ports:
          - "8000:80"
        depends_on:
          - mysql
      mysql:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: secret
          MYSQL_DATABASE: laravel
  3. 建立 Dockerfile:

    FROM php:8.1-fpm
    RUN docker-php-ext-install pdo pdo_mysql
    WORKDIR /var/www
  4. 啟動服務並安裝 Laravel:

    docker-compose up -d
    docker exec -it 
    <app_container> composer create-project laravel/laravel .

❸ 什麼是 RESTful API?

  • RESTful API 是一種風格,用於設計 HTTP 介面,讓前後端透過 API 溝通。
  • 常用動詞對應資源操作:
    • GET /posts:取得所有貼文
    • POST /posts:新增貼文
    • GET /posts/1:取得貼文1
    • PUT /posts/1:更新貼文1
    • DELETE /posts/1:刪除貼文1

❹ RESTful API 如何在 Laravel 應用?

  1. 建立 Route:

    Route::apiResource('posts', PostController::class);
  2. 建立 Controller:

    php artisan make:controller PostController --api
  3. 撰寫邏輯:在 PostController 中實作 index, store, show, update, destroy 等方法。

  4. 回傳 JSON:

    return response()->json($data);

❺ Laravel insert 與 create 差異與情境?

方法 insert create
類型 Query Builder 方法 Eloquent ORM 方法
傳回值 無傳回值 回傳模型物件
資料驗證 不會驗證填充 (fillable) 會驗證 $fillable 或 $guarded
使用時機 批量插入、大量資料效能優先 常規單筆新增、有模型邏輯需求時
// insert
DB::table('users')->insert(['name' => 'Tom', 'email' => '[email protected]']);

// create
User::create(['name' => 'Tom', 'email' => '[email protected]']);

❻ Laravel ORM join 與 with 差異與情境?

方法 join with (Eager Loading)
類型 SQL 層級的 join 查詢 ORM 層級的關聯載入
效能 效能高(單次查詢) 較方便、有模型資料結構
用途 沒有定義關聯,需手動 join 已定義 Eloquent 關聯關係時使用
// join 範例
User::join('posts', 'users.id', '=', 'posts.user_id')->get();

// with 範例
User::with('posts')->get();

❼ Laravel Unit Test 如何避免測試時寫入資料庫?

  1. 使用 Database Transaction:

    use Illuminate\Foundation\Testing\RefreshDatabase;
    
    class ExampleTest extends TestCase
    {
        use RefreshDatabase;
        // 每個 test 執行後會 rollback
    }
  2. 使用 Mock 或 Fake 模型或 Repository:

    • 模擬資料邏輯,不實際寫入。
    • 可以搭配 Laravel 的 Mockery 或 PHPUnit mock 工具。

❽ Laravel Queue 建立方式(簡易流程)

  1. 設定 .env(使用 database 或 redis 等):

    QUEUE_CONNECTION=database
  2. 建立 Queue Table(如使用 database):

    php artisan queue:table
    php artisan migrate
  3. 建立 Job 類別:

    php artisan make:job SendEmailJob
  4. 派送 Job:

    dispatch(new SendEmailJob($data));
  5. 執行 Queue Worker:

    php artisan queue:work