原创 更加順手的用好 Laravel 的多態關聯

前言 在業務中,關聯是我們最常用到的場景。在開發時我們始終都在強調對數據庫設計選擇可解耦,簡潔化,最小化。在這種開發環境下,往往都會將傳統的一個大表拆分成多個小表,這時候關聯就顯得很重要。 MySQL 爲我們提供了像 inner join、

原创 Xdebug 遠程調試,你會用嗎?

前言 在開發過程中,我們最少不了的就是調試,因爲 php 不能像 Java 和 C# 那樣與生俱來的優勢,擁有開箱即用的斷點調試,很多時候我們的開發者都是使用的 var_dump 方法來對結果進行輸出,而有的時候需要查看調用棧時,有的開發者

原创 如何使用 PHP Storm 進行優雅的項目開發?

前言 PHP Storm 這個開發工具,很多 phper 應該有所而爲,甚至也有不少人使用其作爲生產工具,但是很多人都沒有最大限度的使用它,本文就來總結一些優雅開發的小技巧。 開發環境 開發工具 在看這篇文章之前,我想你應該已經安裝好了 P

原创 如何理解 Laravel 和 ThinkPHP 5 中的服務容器與注入?

從文檔說起 很多人一開始看到官方的文檔,無論是 Laravel 還是 ThinkPHP ,看完都是一頭霧水,不求甚解。甚至都是直接跳過去,不看,反正我也不一樣用得到這麼高端的東西,如果在短時間內有這個念頭很正常,尤其是習慣了 ThinkPH

原创 API 交互中怎麼做好圖片驗證碼?

前言 在傳統的 Web 開發過程中,處理圖形驗證碼很簡單,只需要在後臺用隨機字符串生成一個圖片,將驗證碼內容放進 Session 即可,用戶提交表單時從 Session[1] 取出判斷即可。 但是現如今,越來越推崇 API 交互,無狀態,在

原创 怎樣用 PHP 來實現枚舉?

枚舉 在數學和計算機科學理論中,一個集的枚舉是列出某些有窮序列集的所有成員的程序,或者是一種特定類型對象的計數。這兩種類型經常(但不總是)重疊。枚舉是一個被命名的整型常數的集合,枚舉在日常生活中很常見,例如表示星期的SUNDAY、MONDA

原创 談談 PHP 中的類型約束

起點 衆所周知,PHP 是所類型語言,與其他強類型語言項目,在這方面會有很多的坑,但是已經發展到 PHP 7 之後,PHP 也對類型約束有了所指,並且在許多流行框架中被大量使用比如Laravel,因爲這確確實實在軟件開發過程中無論是運行,還

原创 PHP & MySQL 「數據關聯一對一」的最佳實踐

前言 在開發過程中,通常會遇到很多 一對一 數據的處理情況。而很多時候我們會要取到的是一個列表,然後列表的單條記錄的對應另外一張表,來實現業務。比如下面的商品信息 和 商品詳情 兩個表,這裏爲了演示只是使用了基礎字段,實際開發中可能會複雜

原创 MySQL 和 Redis 事務的對比

簡言 一般來說,事務是必須滿足4個條件(ACID)::原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)。 從標題來看,既然都是事務,那之