php Composer使用以及Packagist

介绍一下如何通过Composer和Packagist向PHP社区贡献代码包。首先,如果你是一个PHP开发者但是还不知道什么是Composer,请先参考了一下这篇文章http://docs.phpcomposer.com/00-intro.html,因为访问海外镜像源的速度较慢,也许你还需要这些方法https://pkg.phpcomposer.com/ 来获取更多基础信息。

创建项目

新建一个文件作为我们的项目目录,你可以把所有的文件都放在根目录下,但是我特别推荐新建另一个文件夹 “src” 以更容易理解和维护你的代码结构。项目结构如下:

project                项目根目录
└──src                 源代码放在这个目录
   └──Hello.php        新建一个php文件,取名 Hello.php 
  • Hello.php 文件内容如下:
<?php 
 
namespace hello; 
 
class Hello
{
    public static function world()
    {
        return 'Hello World!';
    }
}

使用Composer

Composer是PHP的一个包依赖管理工具。你可以使用第三方库也可以自行开发。
现在我要告诉你如何创建一个Composer包并且发送到Packagist,
Composer通常以“vendor/package” (厂商/包名)的方式来命名

现在要在项目的根目录里创建一个 composer.json 的文件,我们可以手动创建,也可以在根目录里通过composer init命令来根据提示创建,根目录下就生成了composer.json文件,目录结构如下:

project                项目根目录
└──src                
   └──Hello.php  
└──composer.json  
  • 添加自动加载

然后我们可以手动编辑生成的composer.json文件,添加php的版本要求和自动加载(使用PSR-4),使用hello命名空间,加载src目录下的所有文件,composer.json文件内容如下:

{
    "name": "wumiss/hello",
    "description": "echo hello world",
    "license": "MIT License",
    "authors": [
        {
            "name": "wumiss",
            "email": "wumiss@wumiss.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "hello\\": "src/"
        }
    }
}
  • 执行安装
    在根目录打开命令行输入 composer install 最后或多生成composer.lock 和vendor文件夹

在根目录下创建一个测试文件取名 test.php,代码如下:

<?php  
require_once __DIR__ . '/vendor/autoload.php';  
use hello\Hello;  
echo SayHello::world();
  • 在项目根目录下执行命令 php test.php

如果终端打印出“Hello World!”那祝贺你测试通过!


发布Packagist

上面我们在本地完成了编写和测试。那么想让更多人使用我们的包就需要把我们新建的包发送到Packagist.org。首先我们可以先将项目发布到Github。我们先去Github 创建一个公有仓库命名“hello”, 我们在项目根目录使用Git命令来完成发布。

我们先在根目录里创建.gitignore文件,把vendor目录和composer.lock文件排除git在外。然后推送至github仓库

vendor/*
composer.lock
  • 提交到Packagist
  1. 首先要在Packagist上注册账号并登录
  2. 点击顶部导航条中的Summit按钮
  3. 在输入框中输入github上的仓库地址,如:https://github.com/chenjiesuper/ansible-php
  4. 然后点击Check按钮(Packagist会去检测此仓库地址的代码是否符合Composer的Package包的要求)
  5. 检测正常的话,会出现Submit按钮,再点击一下Submit按钮,我们的包就提交到Packagist上了
  6. 以后更新代码可以先从Packagist获取token然后去github 配置下对应的GitHub Service Hook实现代码提交后Packagist自动拉取更新

如何使用

我们就可以在其他项目引用这个包了,方法如下:
在新建的项目根目录执行命令 composer require wumiss/hello

或者在新建项目根目录新建composer.json编辑:

{
    "require": {
        "wumiss/hello":"dev-master" //这里的版本根据实际需要修改
    }
}

然后执行 composer install 即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 3,166评论 0 9
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    虞大胆的叽叽喳喳阅读 4,048评论 1 33
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    dreamer_lk阅读 2,418评论 0 15
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    bycall阅读 2,237评论 0 1
  • Welcome 目前网络上充斥着大量的陈旧信息,让PHP新手误入歧途,传播着错误的实践和糟糕的代码,这必须得到纠正...
    layjoy阅读 21,724评论 7 118