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



留言

這個網誌中的熱門文章

WINDOWS cmd 操作:查看進程、TCP連線、刪除TCP連線和進程

mongodb aggregate 筆記

mongodb shell 操作