laravel code style

 單文件

<?php

namespace App\Modules\Blog\Action;

use App\Http\Controllers\Controller;

class CreateBlog extends Controller
{

}

1. namespace 上下空一行
2. use 關鍵字上下空一行
3. class 的 { 需換行
4. class 的 } 後面需換行

<?php

if ($a === 1) {

}

5. if 跟 ( 間要有空格
6. ) 跟 { 要有空格
7. { 不需換行
8. 比較符號左右都需有空格

<?php

class a 
{
    public function b()
    {

    }

    public function b()
    {

    }
}

9. 兩個 function 之間需要空一行

<?php
$a = 1;

10. 變數跟 = 之間左右要空一個

<?php
for ($a = 1; $a < 10; ++$a) {

}

11. for 迴圈如上,使用++$a 取代 $a++

<?php

class Spinach extends Vegetable
{
    public $cooked = false;

    public function __construct()
    {
        parent::__construct(true, 'green');
    }

    public function cook_it()
    {
        $this->cooked = true;
    }

    public function generateRandomString($length = 10)
    {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $charactersLength = strlen($characters);
        $randomString = '';

        for ($i = 0; $i < $length; ++$i) {
            $randomString .= $characters[rand(0, $charactersLength - 1)];
        }

        return $randomString;
    }
}

12. code block 之間只能空一行
13. 運算符前後需要空一格,
14. ,號前後需要空一格

api

15. 採用restful api
16. 基礎5種 api

post api/blogs
get api/blogs/{blogId}
get api/blogs // 設定成會需要pagination
put api/blogs/{blogId}
delete api/blogs/{blogId}

若不需pagination命名成 api/all-blogs

17. 詞性

action 為動詞
function 為動詞
interface 為名詞或是形容詞(動詞轉形容詞)
屬性為名詞
變數為名詞
class為名詞

命名皆為駝峰

18. repository

基本操作

getAll
get // 默認抓id
update // 默認使用id
create
delete
search // 條件篩選 可分頁或不分
paginate // 分頁

傳進去的參數只能是基本數值跟array

19. interface

不加 I 或是 interface,相對的實作字尾加 impl

20. 使用 collect 取代 array

21. 不得使用魔術數字

22. service class 只能是名詞

23. 太長的行要分行

24. 基本架構層

action
request
service
data processing 將dto轉成repo的資料
repo



留言

這個網誌中的熱門文章

laravel application layers

動態規劃設計步驟

mongodb aggregate 筆記