【composer】如何在本地开发、调试Composer包

1、准备工作

创建两个空文件夹

|- TestProject # 用于composer引入测试
|- TestPackage # composer的自定义扩展包

1.1 初始化

TestProjectTestPackage分别执行:

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修改

TestPackage\composer.json中添加以下内容(去除注释):

"autoload": {
   "psr-4": {
   		// 命名空间指向,例如:namespace yunuo\testPackage;
   		// 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 创建基本目录

创建基本依赖包目录srctests,也是比较常见的目录结构
完整目录列表如下:

|- src      # 依赖包主要code编写目录
|- tests    # 依赖包测试目录
|- composer.json

1.2.3 创建依赖包服务入口文件

创建TestPackageServiceProvider.php文件,作为依赖包服务提供入口文件
这里做个简单的示例:

<?php
namespace yunuo\testPackage;

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 \yunuo\testPackage\TestPackageServiceProvider();
$TestPackage->demo();

访问http://example/index.php就得到以下内容了:
在这里插入图片描述

Ps: 后续TestPackage更新内容后,在TestProject

composer update
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陀螺蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值