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 文件内容如下:

使用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": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "hello\\": "src/"
        }
    }
}
  • 执行安装
    在根目录打开命令行输入 composer install 最后或多生成composer.lock 和vendor文件夹

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

  • 在项目根目录下执行命令 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 即可。

你可能感兴趣的:(php Composer使用以及Packagist)