您的位置:首页 > 其它

如何发布一个自己的composer扩展

2017-02-06 09:39 585 查看

简介

如何高效,高质量的开发, 特别是团队中,如果在项目中使用Composer构建代码的组件、类库、脚本、接口等一些基础设施,让开发人员只关注与业务实现。

大体步骤

在github上创建一个项目

安装composer后编写composer.json

发布代码到github

packagist提交自己的包

设置github的hook

创建项目

github 上创建项目

git clone git@github.com:zhu2688/framework.git
cd framework


编写composer.json

composer 安装和基本使用 参考文章 Composer php包管理工具

composer 有命令行帮助我们生成 composer.json 文件 ,也可以自己手动编辑 ,具体可以去composer官网阅读 相关文档获得帮助。

composer init
## 中间会填写一些信息,最终会显示下面的字符信息
Search for a package:
{
"name": "zhu2688/framework",
"description": "composer publish demo",
"type": "library",
"require": {
"php": ">=5.6.0",
"monolog/monolog": "^1.23",
},
"license": "MIT",
"authors": [
{
"name": "zhu2688",
"email": "zhu2688@gmail.com"
}
],
"minimum-stability": "stable"
}

简单说明 :
名字为zhu2688/framework

采用MIT协议发布

需要依赖于 php版本5.6以上 和monolog/monolog 的扩展

发布代码到github

git add.
git commit
git push

https://github.com/zhu2688/framework 已经有内容了

发布到 packagist

packagist 注册一个账号,推荐使用github账号直接注册

然后 右上角 submit
然后在文本框中输入你在github上创建的项目的git地址。packagist会自动检测是否合法。如果合法点击递交即可递交自己的包了。

可以到 此链接 到底我提交的项目主页

设置hook
到github的 设置 选项的 ‘Integrations & services’

右边选择增加 ‘Packagist’ 服务

设置 Packagist 的username,token

提交完成

添砖加瓦

编写代码

上面的只是大体流程走了一遍,现在我们开始写自己的php代码

mkdir src
cd src
touch HelloWorld.php

HelloWorld.php 代码如下:

<?php
namespace Soeasy\Demo
class HelloWorld
{
public function __construct($name = 'Soeasy')
{
$this->name = $name;
}
public function hello()
{
return 'Hello '.$this->name.'!';
}
}
?>

当然,要引入刚刚写的代码还需要修改 composer.json 文件,加入以下代码

"autoload": {
"psr-4": { "Soeasy\\Demo\\": "src" }
},


测试安装

提交代码之前,肯定需要测试和验证代码是否有问题了

composer install
mkdir example
cd example
touch test.php

test.php

<?php
require_once '../vendor/autoload.php';

$hello = new Soeasy\Demo\HelloWorld('My First test');
echo $hello->hello();




3.发布使用

composer require zhu2688/framework

你会发现有下面提示,在github上没有发布stable版本

[root@centos test]# composer require zhu2688/frameworkDo not run Composer as root/super user! See https://getcomposer.org/root for details

[InvalidArgumentException]
Could not find package zhu2688/framework at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability

require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...

git tag -a 0.0.1  # 本地添加tag 标签
git push origin --tags  # 本地标签提交到github

然后其它人就可以使用了

命令行

composer require zhu2688/framework  ## 后面也可以指定具体某个分支

在 composer.json 中加入

"zhu2688/framework": "^0.0.2", ## 后面是版本号,具体参考composer用法

赶快去测试下吧

相关链接

packagist 官方网站

Composer 中国全量镜像
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: