开发composer包
生活随笔
收集整理的這篇文章主要介紹了
开发composer包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、初始化(生成composer.json文件)
composer init #輸入你要創建的composer包項目命名空間 Package name (<vendor>/<name>) [root/tiny-laravel]:?#haveyb/tiny-laravel #輸入composer包的描述 Description []:#this is a tiny laravel haveyb #輸入作者信息。前面是作者名稱,后面用<>包住郵箱地址 Author [, n to skip]:?#haveyb <haveyb@163.com> #輸入版本穩定性,stable, RC, beta, alpha, dev Minimum Stability []:?#dev #填寫項目類型 Package Type (e.g. library, project, metapackage, composer-plugin) []:#library #填寫授權類型 License []:?#MIT #填寫依賴信息,如果有需要依賴的包,則填寫在這里,沒有就直接回車。如果需要多個,則重復以上兩個步驟 Define your dependencies.Would you like to define your dependencies (require) interactively [yes]?#示例: Would you like to define your dependencies (require) interactively [yes]? yes Search for a package: php Enter the version constraint to require (or leave blank to use the latest version): >=7.1.3#如果還有其他依賴,則繼續填寫,否則直接回車 Search for a package: Would you like to define your dev dependencies (require-dev) interactively [yes]? no {"name": "haveyb/tiny-laravel","description": "this is a tiny laravel haveyb","type": "library","require": {"php": ">=7.1.3"},"license": "MIT","authors": [{"name": "haveyb","email": "haveyb@163.com"}],"minimum-stability": "dev" } Do you confirm generation [yes]? yes #是否現在安裝依賴 Would you like to install dependencies now [yes]? no
配置psr-4自動加載
#在composer.json中添加如下代碼 "autoload":{"psr-4":{"haveyb\\TinyLaravel\\":"./src/"} },?
添加上面代碼后的composer.json文件
{"name": "haveyb/tiny-laravel","description": "this is a tiny laravel haveyb","type": "library","require": {"php": ">=7.1"},"license": "MIT","authors": [{"name": "haveyb","email": "haveyb@163.com"}],"minimum-stability": "dev","autoload":{"psr-4":{"haveyb\\TinyLaravel\\":"./src/"}} }
生成自動加載文件
執行該命令后,就會發現,目錄下生成了一些文件,這些文件就是自動加載所用的文件,如圖:
?
?
二、開發composer包并測試
?
1、創建目錄結構
在包目錄下創建src目錄,我這里的包目錄是在 /data/tiny-laravel
cd /data/tiny-laravel mkdir src cd src mkdir database touch MySQL.php
?2、向 MySQL.php 文件添加如下測試內容
?
3、在項目中實例化這個類,并訪問這個方法,如果成功,說明composer包開發成功,之后根據需求定制開發即可。
我這里為了方便,直接在網站根目錄訪問的index.php。
index.php
<?php require './vendor/autoload.php'; use haveyb\TinyLaravel\database\MySQL;$mysql = new MySQL(); echo $mysql->getDatabase();結果是this is get database function,說明定義并加載成功,之后可以根據需求定制開發,然后在項目中實例化后引用相應方法即可。
?
注意:如果出錯,著重檢查命名空間和引入是否正確和規范。
?4、結語
現在,我們可以開始定制開發了,就像我們使用的阿里巴巴的 oss composer包一樣。
具體包的加載過程,這里不細說,不過有一個文件,大家應該要知道,位于 tiny-laravel/vendor/composer/autoload_psr4.php。
它長這個樣子:
<?php// autoload_psr4.php @generated by Composer$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir);return array('haveyb\\TinyLaravel\\' => array($baseDir . '/src'),'yii\\gii\\' => array($vendorDir . '/yiisoft/yii2-gii/src'), );
三、發布composer到packagist
總結
以上是生活随笔為你收集整理的开发composer包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发中 MySQL 规范
- 下一篇: 发布composer包到 Packagi