`
dcj3sjt126com
  • 浏览: 1880334 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

composer之创建自己的包

    博客分类:
  • PHP
php 
阅读更多

composer的出现,使得PHPer可以像java一样更加方便的管理代码。在composer没有出现之前,人们大多使用pear、pecl管理依赖,但是局限性很多,也很少有人用(接触的大多phper基本不适用pear管理依赖)。composer不仅仅能够解决依赖的问题,也可以在一定程度上解决造轮子的问题。

废话不多说,这篇主要记录如何创建自己的package。

大概步骤如下:

  1. 在github上创建一个项目(项目名称可以随意)
  2. 编写composer.json
  3. copy代码文件并修改命名空间
  4. https://packagist.org/上递交自己的包
  5. 设置github的hook

编写composer.json

先看一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "name": "jenner/message_queue",
    "description": "php message queue wrapper",
    "license": "MIT",
    "keywords": ["message queue"],
    "version": "1.0.0",
    "authors": [
        {
            "name": "Jenner",
            "email": "hypxm@qq.com"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    },
 
    "autoload": {
        "psr-0": {
            "Jenner\\Zebra\\MessageQueue": "src/"
        }
    }
}

需要注意的几个字段说明如下:

name:包名称,递交时packagist会检测报名字是否合法。必须是一个/分隔的字符串。当别人引入你的包时,vendor下会自动创建这个目录。例如org/package包,则会在vender下创建org/package目录。

autoload:包的加载方式,具体加载方式可以参考composer中文网说明。这里使用的是psr-0标准加载方式。composer会在src目录下根据命名空间执行自动加载。

 

copy代码修改命名空间

composer.json文件修改后,我们需要把要打包的源文件复制过来。这里我把所有的文件放在了src目录下,后面可能会有和src同级的tests等目录,而这些目录是不会被加载的。src目录下需遵循psr-0标准。命名空间和目录定义要一直。例如Namespcae/SubNamespace命名空间,则src下必须有Namespace/SubNamespace目录。

代码编写标准可以参考psr-0、psr-1标准

 

递交自己的包

pacagist开放递交,你可以任意递交自己的包,当然,要符合一定规则。

packagist右上角有一个submit package的按钮,点击会跳转到递交页面,如下图:

QQ截图20141104224005

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

你可能需要在github上面发布几个release,这样packagist才会认定你的包是稳定的,否则只能required开发包。

设置github的hook

版本控制工具大多支持hook,用于代码递交时触发一个事件,将代码同步到其他环境中。在github上设置hook后,我们每次pull,都会自动同步到packagist上,这样就不需要我们手动强制同步了。具体操作可以参见packgist的说明,操作很简单,耐心看下应该问题不大。

 

最后,如果别人使用了这个包。他的vendor目录下就会产生jenner/message_queue目录,其下的内容就是你github上的代码了,结构是完全一致的。

 

 

原创文章,转载请注明: 转载自始终不够

本文链接地址: composer之创建自己的包

分享到:
评论

相关推荐

    composer中国离线包

    Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个...

    composer包demo

    "composer包demo" 是一个基础的实践教程,它没有实现复杂的功能,但包含了创建自定义Composer包的基本步骤。这个项目适用于那些想要了解如何编写和分享自定义Composer包的开发者,通过它,你可以学习到以下关键知识...

    PHP创建自己的Composer包方法

    #### 三、创建自己的 Composer 包 创建 Composer 包的过程简单来说分为两步: 1. **填写包描述信息**:需要编写 `composer.json` 文件,指定包的基本信息。 2. **编写代码**:实现包的功能。 **示例:创建一个...

    laravel引入自定义composer包文件.zip

    在 Laravel 框架中,开发人员经常需要创建和使用自定义的 Composer 包来扩展功能或实现特定需求。Composer 是 PHP 的一个依赖管理工具,它允许我们方便地管理和加载项目所需的库和组件。本教程将详细介绍如何在 ...

    Composer-Setup php Composer安装包

    创建一个新的PHP项目时,首先要创建一个`composer.json`文件,其中定义了项目所需的所有依赖及其版本。然后,运行`composer install`命令,Composer会自动下载并安装所有必要的库到项目中的`vendor`目录。 Composer...

    laravel使用composer手动创建

    本教程将详细讲解如何使用Composer来手动创建一个Laravel项目,这对于理解Laravel的底层工作原理极其有帮助。 首先,确保你已经安装了PHP环境和Composer。如果没有,你需要先到官方网站下载并安装它们。安装完成后...

    Unity游戏源码分享-强大的地形生成Terrain Composer 2 v2.7

    通过这个Unity游戏源码分享,开发者不仅可以学习到如何使用Terrain Composer 2 创建复杂的地形,还能借鉴其设计思路,提升自己的游戏开发技能。无论你是新手还是经验丰富的开发者,这款插件都能为你带来极大的便利,...

    composer.rar安装

    每个库都有自己的`composer.json`,声明其依赖和其他元数据。`composer.lock`文件记录了确切的库版本,确保在不同环境中构建的一致性。 **5. 配置与优化** Composer支持自定义配置,例如设置镜像源以提高在中国的...

    镜像Composer的安装

    - 将`composer.phar`文件移动到该目录下,并创建一个批处理文件`composer.bat`,内容如下: ```bat @php "%~dp0composer.phar" %* ``` - 这样做可以让系统识别`composer`命令。 2. **验证安装**: - 安装完成...

    composer 安装包及教程

    使用Composer管理项目依赖时,你需要创建一个`composer.json`文件,其中定义了项目所需的所有包及其版本。例如: ```json { "require": { "monolog/monolog": "^2.0", "slim/slim": "^4.0" } } ``` 然后,运行`...

    composer安装包,简单使用手册

    要使用Composer创建一个新项目,首先在你的工作目录下创建一个新的文件夹,然后在该文件夹内打开命令行。运行`composer init`命令,这将启动一个交互式流程,询问项目的相关信息,如作者、许可证、版本等。完成这些...

    wordpress插件 js_composer中文

    JS Composer 是一款专为 WordPress 设计的强大页面构建器,它允许用户通过直观的拖放界面轻松创建和编辑网站页面,无需掌握复杂的编程语言。这款插件极大地扩展了WordPress的功能,使得内容创作者能够自定义网站布局...

    php composer 附带使用方法和常用包名称

    2. **创建composer.json文件**:在项目根目录下创建一个`composer.json`文件,这是项目依赖的配置文件。例如: ```json { "name": "your/project", "description": "Your project description", "require": { ...

    composer安装的phpoffice/phpexcel包

    这个库是Composer安装的,Composer是PHP的一个依赖管理工具,它允许开发者方便地管理和更新项目中的各种依赖包。 `phpoffice/phpexcel`库的主要功能包括: 1. **读取Excel文件**:支持多种格式,如`.xls`(BIFF8 - ...

    Composer-学习包

    **Composer学习包详解** Composer是PHP开发中的一个关键工具,它是一个依赖管理器,用于解决项目中不同库和框架的依赖关系。通过Composer,开发者可以方便地管理项目所需的第三方库,确保它们按照正确的版本和顺序...

    composer1.8.5.zip

    通过运行这个文件,用户可以执行Composer的各种操作,如安装、更新项目依赖,或者创建自己的包。 Composer的工作原理是读取项目的`composer.json`文件,这是一个定义项目依赖的JSON格式文件。它列出了项目需要的...

    Composer_6.7_User.pdf

    - Composer 与 xCelerated Composition Platform 的结合提供了强大的工具集,支持快速、高效地创建复杂的应用程序。 以上内容概述了 Documentum Composer 6.7 使用指南的关键知识点,涵盖了 Composer 的基本概念、...

    NVIDIA FX Composer工具安装包

    通过FX Composer,用户不仅可以创建引人入胜的图形效果,还可以深入理解图形编程的原理,提升自己的技能水平。对于那些致力于游戏开发、特效制作或图形技术研究的人来说,这是一款不可或缺的工具。

    composer.pdf

    该工具主要功能是依赖管理,开发者通过它来声明项目所需的依赖包,Composer会负责下载和更新这些依赖到项目中。 ### 安装Composer #### 系统要求 Composer有特定的系统需求,确保操作系统兼容,包括*nix系统和...

Global site tag (gtag.js) - Google Analytics