如何自製Composer的套件

首先一定要有Composer

建議安裝在可直接執行的地方

像我就裝在 /usr/local/bin

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin
mv /usr/local/bin/composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

然後建立一個專案資料夾

mkdir my-project
cd my-project

使用

composer init

來初始化

並產生composer.json

再來就需要知道auto load的規範

目前有psr-0psr-4兩種

psr是 PHP Standard Rules的縮寫

就是由PHP-Fig這個組織所擬定的共同規範

當然要不要遵守這個規範是看個人

不過也因為有了規範

PHP的世界從此變得不一樣

而psr-0跟psr-4都是關於auto load的規範

但看數字也知道psr-0是最一開始制定的規範

現在已經要被移除了

建議新開發的套件都使用psr-4

PSR-4主要在規範class名稱跟class檔案所在位置的對應關係

所以在定義class name跟把這個class檔案放哪

都必須遵照這個規則走

簡單來講

就是namespace會對應到資料夾位置

最後一個class name則是class檔案的名稱

 

在專案資料夾下新增一個src資料夾

mkdir src

並在composer.json中新增

"autoload": {
        "psr-4": {
            "Vendor\\Package\\": "src/"
        }
    },

代表著namespace以 Vendor\Package 開頭的class檔案都會在src下

所以如果有個class全名是 Vendor\Package\FirstClass

檔案就會在 src/FirstClass.php

至此就差不多可以開始開發了

當然還可以繼續整合phpunit

還有PHP_CodeSniffer

看更多