在這一系列的文章中,雖然筆者在第一天定下整個系列的大方向,來到了第十五天,仍然一直在想如何把前面所提到的東西實際地應用在後面的章節,給讀者們對如何設計自己的開放原始碼作品有個「面」的認識,引發了興趣,再一起來追求「點」的細節。
不知道實際上會閱讀這系列文章的人有多少,但接下來的 PHP 套件設計實戰,整個內容和之前發表過的文章有連慣性,筆者將直接取用範例,並認真的把它們改寫成一個真正可派上用場的套件唷!
快取,就決定是你了!
キャッシュ ー キミにきめた!
在 Day 7 介紹工廠模式時的的範例,是一支 Redis 快取的類別,和一支使用 MySQL 的類別。筆者決定延用之前的範例來當作這次 PHP 套件設計實戰的主題。
話不多說,在筆者打這篇文章的同時,建立一個新的 GitHub 儲存庫。
建立儲存庫
設計 PHP 套件設計的第一步,命名你的套件名稱,是一個看起來很微小但卻非常重要的要點,接下來建立 GitHub 儲存庫。
還在得前一篇文章,筆者提到的命名訣竅嗎?儲存庫及介紹文章要簡潔有力,且要命中關鍵字。好讓以後想找相關資訊的人可以找到。
建好了。接下來要在本地端開發環境將這個儲存庫複製一份下來,並建立 composer.json
這個檔案,然後進行第一次的提交 (commit)。
相容性指南
在 composer.json 中的 require
欄位,指定 PHP 的版本。必須仔細評估相容性。以筆者的範例來說,皆會宣告指定回傳值型別,這是 PHP 7.0 以上的新增功能。也會使用 null
屬性型別宣告,這是 PHP 7.1 以上的功能。
如果你的作品集考量到盡可能支援所有的使用者基本盤 (user base),可以指定為 PHP 5.3,畢竟還有很多老舊的虛擬主機商仍然用很舊的 PHP 版本在運作中。如果你打算這麼做,之後的新增語法及功能都避免使用。
在 Day 2 的PHP 版本差異一文,可以給出一個參考方向。
"require": {
"php": ">=7.1.0",
"psr/simple-cache": "^1.0"
},
因本次作品會依照 PSR-16 的界面實作,因此依賴的套件,加入了 psr/simple-cache
。
"require-dev": {
"phpunit/phpunit": "^7"
},
PHP Unit 是單元測試用的套件,第 7 版支援 PHP 7.1 至 7.3。筆這將就 7.1、7.2、7.3 這三個 PHP 版本進行單元測試。
編輯好 composer.json 之後,執行 composer install
安裝 PHP Unit 和 PSR-16 界面。
註:記得把 vendor 目錄加入 .gitignore 檔案裝,以避免該目錄被加入版控中。
第一次提交
編輯好 composer.json 之後,進行第一次提交,接下來的文章將一步一步的實作這個快取套件。
我們明天見。
留言