开发一个自己的composer包

转载请注明文章出处:shiwenyuan.github.io/posts/cjz0o…

composer简介

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
复制代码

准备工作

1.一个github账号 2.一个packagist账号 3.一台安装composer的开发机

packagist注册链接github注册链接composer文档

发布流程

1.首先在github上创建一个项目

2.把项目克隆到本地

3.进入项目根目录初始化项目

➜  xdpframework git:(master) composer init

                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [shiwenyuan/xdpframework]: 
Description []: a xdp framework
Author [北行10000 <13341007105@163.com>, n to skip]: 
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: 
License []: MIT

Define your dependencies.

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": "shiwenyuan/xdpframework",
    "description": "a xdp framework",
    "license": "MIT",
    "authors": [
        {
            "name": "北行10000",
            "email": "13341007105@163.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}

Do you confirm generation [yes]? 
Would you like the vendor directory added to your .gitignore [yes]? yes
复制代码

此时目录下回程车一个composer.json文件,文件内容形如

{
    "name": "shiwenyuan/xdpframework",
    "description": "a xdp framework",
    "license": "MIT",
    "authors": [
        {
            "name": "北行10000",
            "email": "13341007105@163.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}
复制代码

4.编写自己的composer包

4.1 此处我创建了一个src目录并实现了SayHello类

➜  xdpframework git:(master) ✗ tree
.
├── README.md
├── composer.json
└── src
    └── SayHello.php
复制代码

4.2 修改composer.json

{
    "name": "shiwenyuan/xdpframework",
    "description": "a xdp framework",
    "license": "MIT",
    "authors": [
        {
            "name": "北行10000",
            "email": "13341007105@163.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "XdpFrameWork\\": "src/"
        }
    }
}
复制代码

4.3 自动加载src目录

在4.2添加了src的加载运行composer install实现自动加载
➜  xdpframework git:(master) ✗ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
此时目录中会生成一个vendor 它实现了加载方法
➜  xdpframework git:(master) ✗ tree
.
├── README.md
├── composer.json
├── src
│   └── SayHello.php
└── vendor
    ├── autoload.php
    └── composer
        ├── ClassLoader.php
        ├── LICENSE
        ├── autoload_classmap.php
        ├── autoload_namespaces.php
        ├── autoload_psr4.php
        ├── autoload_real.php
        ├── autoload_static.php
        └── installed.json
复制代码

4.4 测试结果

创建test.php
<?php
/**
 * Created by PhpStorm.
 * User: shiwenyuan
 * Date: 2018/8/2 13341007105@163.com
 * Time: 下午8:56
 */
require_once __DIR__."/vendor/autoload.php";
use XdpFrameWork\SayHello;
SayHello::world();
命令行中运行
➜  xdpframework git:(master) ✗ php test.php
hello world
复制代码

4.5 忽略vendor、composer.json文件

修改.gitignore增加下面两行
/vendor/
复制代码

4.6提交代码到 github


5. Packagist配置

5.1 github关联到Packagist

1.首先要在Packagist上登录
2.点击顶部导航条中的Summit按钮
3.在输入框中输入github上的仓库地址,如:https://github.com/shiwenyuan/xdpfarmwork
4.然后点击Check按钮
5.Packagist会去检测此仓库地址的代码是否符合Composer的Package包的要求
6.检测正常的话,会出现Submit按钮,再点击一下Submit按钮,我们的包就提交到Packagist上了
复制代码

5.2 配置自动同步

1.从Packagist点击个人中心点击profile获取token然后复制
2.到github项目首页上点击settings、点击webhooks、点击addwebhook
3.把https://packagist.org/api/bitbucket?username=USERNAME&apiToken=TOKEN 复制到Payload URL,在下方输入密码后保存
复制代码

5.3 打tag测试


引用包

composer require shiwenyuan/xdpframework
复制代码

注意事项

如果下载不下来到话就换一下镜像
composer config -g repo.packagist composer https://packagist.laravel-china.org
刚发布上去可能会下载不到,没有同步过来-- 可以等一会在试试看
复制代码

转载于:https://juejin.im/post/5d4a59a7f265da03986bdb92

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值