瀏覽標籤:

PHP

更好的自己更好的 API

今天來優化自己的 API (順便聊聊心情人生),前幾天都是把原本既有的程式碼拆開,現在要來優化API。

直接動手做(心情分享)

今天打算修改的部分希望盡量把原本的不足,寫成符合規範的程式碼!若你懶得看心情分享!請直接跳到下方的 修改原本設計的 URI單元,馬上實現動手做的精神!

人生難免不如意去年想要參加鐵人賽,但被一些事情影響到自己的心情,實在提不起勁,什麼也都懶得做、懶得用!沒有參加到去年的鐵人賽了

(現在出社會兩年多了!說實在真的沒有比當學生開心好好把握當學生 )。

那時心情比較低落所以看了很多書呀!心理學、正念、生活品質、斷捨離… 嘗試做很多改變。

什麼都試試看!最後成效不佳,覺得自己很廢。得到最大的體悟就是 現在認為的事情不一定是對的事,因此開始有點不敢動手做,覺得成效不好,做白工的感覺!

最後實在不行,覺得太廢了!跟朋友聊聊,發現如果遇到不同意見的人,可以在自己發表意見時先聽聽對方的想法,多多少少都會感覺得出來他為什麼這麼說的原因,換位思考一下!我覺得這很有幫助~

(雖然一件事情沒有絕對的對或錯!但是總比一直在做你以為對的事情,最後成效不佳好多了!)

現在看一看鐵人賽也快撐到完賽了!雖然不到完美但有很多收穫!

全部都歸咎於開始動手做,不開始就不會有進展,很開心我對於寫程式這方面充滿這種熱情! 哈哈哈xD

朋友跟我說,人生是一個面,工作是個點,我的人生只有工作跟運動,我現在是一條線而已,非常規律、自閉。 (工程師都這樣嗎?)

親情、友情、愛情,我好像都沒有顧好! 沒有像對程式般的熱情,那種撩下去就對了感覺!

如果你是害怕寫程式,撩下去就對了!(自己期許除了程式能力方面外,也有這樣的熱情。)

秉持著撩下去的熱情做做看就對了!沒有一次就寫到完美的Code,必須要有嘗試過的經驗,還有不斷的修正。

廢話不多馬上依照我目前的經驗分享,讓API更好維護,讓程式碼更符合統一規範的過程。

正式上線系統修改變更程式前請思考清楚!

閱讀更多

我的最愛追蹤功能製作

定義資源

我的最愛功能,製作一個可以讓 user 追蹤動物的操作,是一個連結的關係,綁定動物與用戶的關聯。

依照以前的經驗,我會幫這樣的動作取一個名字 like 之類的資料表來儲存內容。

但經過幾次的打造API經驗後,在規劃資料表的命名上,如果系統規模很大只有 like 當表名不是很明確。

我們這個系列打造的送養系統如果想要新增一個追蹤某位愛心媽媽的功能,就會覺得like不是很明確。

這樣在資料庫中看到 like 資料表,無法明確的知道內容。所以這邊我不另外給它一個名字。

會製作一張表  animal_user  這是我目前的原則!可以清楚知道這張資料表紀錄著 animal 與 user 的關係,並且依照字母排列A->Z命名這張表。 所以不命名為 user_animal 這是開始用 Laravel 後才有的習慣,在某個官方文章有寫到預設是 開頭A->Z來建立資料表。

閱讀更多

會員權限設計(管理員、一般會員)

昨天設定修改資料表以符合需求,接下來要設定權限部分,打算分兩種會員 管理員與一般會員。

權限說明
管理員可以做所有的新增刪除修改
一般會員可以新增動物而已,並且只能修改自己新增的動物。無法新增刪除修改分類

新建一個原則 policy

php artisan make:policy AnimalPolicy -m Animal
產生policy檔案
閱讀更多

分類CRUD、模型關聯

定義資源

類別 type,預計紀錄該系統的動物分類 (貓、狗、其他…)

定義這個資源物件的內容

定義一個資源需要有哪些詳細資料。

欄位名 說明 格式 備註
id 分類id int(10) unsigned
name 類別名稱 varchar(50)
sort 排序 int(10) 
created_at 新建時間 timestamp NULL
updated_at 更新時間 timestamp NULL

產生基本檔案

C:\project\animal\ > php artisan make:model Type -rmc

設定路由

來到 api.php 把路由指定到 TypeController

Route::apiResource('types', 'TypeController');
閱讀更多
PostgreSQL LOGO

SQL 如何查詢以「,」分隔的陣列字串

現在有一個陣列 [1,2,3] 把它轉為字串利用「,」做分隔符號(“1,2,3”),並存入資料表中,該如何查詢?

PHP

$arr = array(1,2,3); //陣列
echo implode(",",$arr); // 輸出 字串 "1,2,3"

JavaScript

var array = [1,2,3];

console.log(array.join());
// 輸出 字串 "1,2,3"
閱讀更多

PHP isset()、empty()、is_null()的區別

這三個方法都是來判斷是否為空值或是有沒有宣告變數的方法,比較容易搞混的是 isset()、 empty() 。簡單整理一下這三個差異的筆記。

  • isset() 檢查的變數存不存在
  • empty()檢查的變數內的是否為空
  • is_null():檢查變數是否為null
閱讀更多

Laravel CSRF 排除部分功能

app/Http/VerifyCsrfToken.php

/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
 protected $except = [
     //這裡填入相對應的網址
     'test/*'
 ];

如上方程式碼顯示,排除test 開頭的所有網址

PHP 字串處理

strip_tags()     移除 html語法

mb_substr(變數,開始值,數量,編碼語系)