PHPackages                             trd-rdm/make-unit-command - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. trd-rdm/make-unit-command

ActivePackage[CLI &amp; Console](/categories/cli)

trd-rdm/make-unit-command
=========================

A laravel make command to help project team members easily create project files for a route.

v1.1.6(3y ago)036MITPHPPHP &gt;=7.1.3

Since Sep 18Pushed 3y ago1 watchersCompare

[ Source](https://github.com/joseph101039/laravel-unit-make-command)[ Packagist](https://packagist.org/packages/trd-rdm/make-unit-command)[ RSS](/packages/trd-rdm-make-unit-command/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (14)Used By (0)

Unit Make Command
=================

[](#unit-make-command)

用法
--

[](#用法)

```
php artisan make:unit User   // 範例1
php artisan make:unit Users/Admin  // 範例2
```

Introduction
------------

[](#introduction)

A laravel unit make command which may help project team member quickly create the necessary files for a resource route.

1. 安裝步驟
-------

[](#1-安裝步驟)

### (1) 安裝

[](#1-安裝)

打開命令提示視窗，在專案根目錄路徑底下輸入 `composer require trd-rdm/make-unit-command --dev` 確認安裝成功後

### (2) 註冊 Service Provider

[](#2-註冊-service-provider)

在專案根目錄下找到 app/Providers/AppServiceProvider.php 中找到 **register()** 函式 在函式中 **宣告只有在本地端 (當APP\_ENV = local) 才註冊 UnitCommandServiceProvider**，添加內容如下斜線粗體部分:

```
public function register()
{
    if($this->app->isLocal()) {
        $this->app->register(
            \RDM\MakeUnitCommand\UnitCommandServiceProvider::class);
    }
}
```

`說明: 只在本地端註冊避免在 google cloud platform 上建置機器時，可能會無法連線到此 私人GitLab函式庫而導致建立過程出錯，同時建置機器時建議以"composer install --no-dev" 安裝，跳過安裝 require-dev 中的開發階段的套件，避免建置失敗。`

### (3) 複製套件文檔至專案中

[](#3-複製套件文檔至專案中)

打開命令提示視窗，在專案根目錄路徑底下輸入 **php artisan vendor:publish --tag=generator --force**，將必要檔案複製到專案中，若是沒有顯示錯誤，表示安裝完成。 不要忘了將這些檔案 git add，push 上 server 讓專案成員可以使用。

---

2. 使用說明:
--------

[](#2-使用說明)

### (1) 指令

[](#1-指令)

用法類似於 Laravel 內建的 make:controller的指令。
打開命令提示視窗，在專案根目錄路徑底下輸入，在專案根目錄底下輸入 **php artisan make:unit Folder/User** ，表示在 Folder 資料夾底下建立相關文件。

上述指令會
(1) 在 *app/Http/Folder/Controller/User*底下建立 Controller.php, Transform.php, Form.php
(2) 在*App/Management/Folder/User* 底下建立 Service.php, SearchService.php, Repository.php, Entity.php
(3) 在 *api.php* 底下新增預設的 resource routes 如下:

```
// TODO: 檢查 User 建立 Routes URI 是否正確
Route::get('user', 'Folder\User\Controller@index');
Route::post('user', 'Folder\User\Controller@store');
Route::put('user/{user}', 'Folder\User\Controller@update');
Route::delete('user/{user}', 'Folder\User\Controller@destroy');
```

- 特別注意的是程式會自動檢測 URI 格式重複的 route 不會被建立，例如若是 api.php 中已經有*Route::put('user/{id}, ...)*，為了避免路由覆蓋的問題，*Route::put('user/{user}', 'User\\Controller@update')* 將不會被建立。

### (2) 啟用/停用建立檔案

[](#2-啟用停用建立檔案)

若是不想自動在 *api.php* 底下新增 resource routes，可以到*config/generator.php* 底下找到\*\*'route' 將 enable 改為 false\*\*。 同理，你也可以disable controller, entity 或是 search 檔案的建立。

3. 更新步驟:
--------

[](#3-更新步驟)

### 指令

[](#指令)

1. composer update rdm/make-unit-command
2. 在專案根目錄路徑底下輸入 *php artisan vendor:publish --tag=generator --force* 覆蓋舊檔案
3. 將所有變更 git push

---

### v1.1.0

[](#v110)

*2019-10-14*
Added

- 在 controller 添加 transformer 以及 Search 類別的宣告
- 添加輸入參數字首是否為大寫的檢查，若是小寫會詢問。

Changed

- 修正 command help 描述
- 修改 shell 輸出訊息顏色

### v1.1.1

[](#v111)

*2019-12-30*
Added

- 添加 Form::attributes() 以讓程式人員可以自定義驗證錯誤訊息中的驗證欄位名稱

Changed

- 修正改 Form::authorize() 中範例呼叫的權限函式配合新版 Basic\_Project 從 BaseForm::permission(tag, value) 改成 BaseForm::can(value, tag) 以增加程式可讀性
    並且 BaseForm::can() 支援 Closure 格式的呼叫

### v1.1.2

[](#v112)

*2020-04-09*
Changed

- 修正 MAC / Linux 環境下不支援 backslash 路徑導致的創建檔案問題

### v1.1.5

[](#v115)

*2022-01-10*
Changed

- 修正替換 Laravel 8 已經棄用的 Str 輔助函式

---

Form 範例程式
---------

[](#form-範例程式)

### ***Form.php***

[](#formphp)

格式自由填寫

```
