2015年4月20日 星期一

PHP - Deprecation notice

在開發函式庫時,免不了會修正 Class API 或是做一些重新命名, 重構等動作,接著做下一個版本的釋出。

Minor 版本的修正還好,但是 Major version 釋出時,如果你沒有先警告 User 哪些東西已經 deprecated 的話,是會遭到抱怨的。

這邊基本上有幾種做法:


  1. 針對 Critical Deprecation 的,可以 throw 出一個客製的 DeprecationException extends from LogicException
  2. 另外一種做法是比較 soft failure 的,使用 trigger_error,但把 message type 設定成 E_USER_DEPRECATED

以下是使用 trigger_error 的 snippet:


trigger_error("Deprecated class, please use MetadataRevisionSchema instead.", E_USER_DEPRECATED);