您现在的位置是:首页 >其他 >【composer】如何在本地开发、调试Composer包网站首页其他
【composer】如何在本地开发、调试Composer包
简介【composer】如何在本地开发、调试Composer包
1、准备工作
创建两个空文件夹
|- TestProject # 用于composer引入测试
|- TestPackage # composer的自定义扩展包
1.1 初始化
在TestProject
和TestPackage
分别执行:
composer init
一路默认或者自己按需修改引导中的参数完成composer初始化
例如:
Package name (<vendor>/<name>) [yunuo/test-project]:
Description []: 用于composer引入测试
Author [, n to skip]: Author Name <xxxx@xxx.xxx>
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []:
License []:
Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package:
{
"name": "yunuo/test-project",
"description": "用于composer引入测试",
"authors": [
{
"name": "Author Name",
"email": "xxxx@xxx.xxx"
}
],
"require": {}
}
Do you confirm generation [yes]?
Ps: 如果还是不太清楚可以参考:https://github.com/ionepub/ionepub.github.io/issues/72
1.2 Composer Package部分
这里演示Composer Package的基础创建、示例
1.2.1 composer.json修改
在TestPackagecomposer.json
中添加以下内容(去除注释):
"autoload": {
"psr-4": {
// 命名空间指向,例如:namespace yunuo estPackage;
// composer根据此处配置,去往src目录下引入相关文件
"yunuo\testPackage\": "src"
}
},
"autoload-dev": {
"psr-4": {
// 同理,这是测试目录的指向
"yunuo\testPackage\Test\": "tests/"
}
},
// 本地开发,这里设为dev
"minimum-stability": "dev",
"require": {
// 根据实际需要,引入扩展包需要的扩展
},
本例中完整composer.json
如下:
{
"name": "yunuo/test-package",
"description": "composer的自定义扩展包",
"authors": [
{
"name": "Author Name",
"email": "xxxx@xxx.xxx"
}
],
"autoload": {
"psr-4": {
"yunuo\testPackage\": "src"
}
},
"autoload-dev": {
"psr-4": {
"yunuo\testPackage\Test\": "tests/"
}
},
"minimum-stability": "dev",
"require": {}
}
1.2.2 创建基本目录
创建基本依赖包目录src
、tests
,也是比较常见的目录结构
完整目录列表如下:
|- src # 依赖包主要code编写目录
|- tests # 依赖包测试目录
|- composer.json
1.2.3 创建依赖包服务入口文件
创建TestPackageServiceProvider.php
文件,作为依赖包服务提供入口文件
这里做个简单的示例:
<?php
namespace yunuotestPackage;
class TestPackageServiceProvider
{
public function demo()
{
echo '来之TestPackageServiceProvider的输出';
}
}
至此,我们已经有了一个composer扩展包:yunuo/test-package
1.3 Project部分
测试扩展包执行情况及调试
Ps: 由于第一步我们已经用init命令初始化过项目了,这里就不重复演示了。
1.3.1 composer.json修改
编辑 composer.json
文件,添加以下内容(去除注释):
"require": {
"yunuo/test-package": "dev-master"
},
"repositories": {
"yunuo/test-package": {
"type": "path",
"version": "dev-master",
// 此处填写TestPackage包所在目录的绝对路径
// 若是win系统,注意"/"方向,例如:D:/www/TestPackage
"url": "/www/TestPackage"
}
}
本例中完整composer.json
如下:
{
"name": "yunuo/test-project",
"description": "用于composer引入测试",
"authors": [
{
"name": "Author Name",
"email": "xxxx@xxx.xxx"
}
],
"require": {
"yunuo/test-package": "dev-master"
},
"repositories": {
"yunuo/test-package": {
"type": "path",
"version": "dev-master",
"url": "/www/TestPackage"
}
}
}
Ok,至此基本上大功告成,接下来运行测试下
1.3.2 测试
在TestProject
目录下创建一个测试文件,例如index.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
$TestPackage = new yunuotestPackageTestPackageServiceProvider();
$TestPackage->demo();
访问http://example/index.php
就得到以下内容了:
Ps: 后续TestPackage
更新内容后,在TestProject
下
composer update
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。