composer.json 作為 composer 的配置文件,是非常重要的一份文件。它不僅僅用來指定依賴關系和 autoloading 規則,還可以包含注釋來解釋我們的配置
{ "name": "myproject/mypackage", "description": "A brief introduction to my package", "type": "library", "license": "MIT", "authors": [ { "name": "John Smith", "email": "john@example.com" } ], "require": { "php": "^7.3", "monolog/monolog": "^2.0" }, "autoload": { "psr-4": { "MyProject\\": "src/" } }, "extra": { "somekey": "somevalue" }, "scripts": { "test": "phpunit tests" } }
在上面的例子中,我們可以在每個屬性前面添加注釋來解釋這個屬性的用途。比如:
{ // 包的名稱,建議使用 vendor/project 的格式 "name": "myproject/mypackage", // 包的簡介 "description": "A brief introduction to my package", // 包的類型,可以是 library、project、metapackage 等 "type": "library", // 授權協議,建議使用 SPDX 規范的協議名 "license": "MIT", // 作者信息 "authors": [ { "name": "John Smith", "email": "john@example.com" } ], // 依賴關系,可以指定版本范圍、包名稱、包地址等信息 "require": { "php": "^7.3", "monolog/monolog": "^2.0" }, // Autoload 規則,可以指定 PSR-4、PSR-0、classmap 等方式 "autoload": { "psr-4": { "MyProject\\": "src/" } }, // 自定義的屬性,可以用來存儲額外的信息 "extra": { "somekey": "somevalue" }, // 自定義腳本,可以在 composer install/update 時執行 "scripts": { "test": "phpunit tests" } }
盡管注釋不是必需的,但是它可以讓我們的配置更加清晰易懂。當然,注釋也需要像代碼一樣,時刻保持更新和維護。