创建一个composer/packagist包
在github上面创建一个新库,这里取名car, 初始化readme.md, 然后克隆到本地:
git clone https://github.com/maxwelldu/car.git cd car
这里的car文件夹就是包的root目录了,只需要记住composer.json在包的哪个目录下面,一般那就是包的root目录了。
现在还没有composer.json文件,可以通过命令: composer init, 中括号里面的为默认值,如果直接回车将使用里面的值
➜ car 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>) [maxwelldu/car]: Description []: composer study Author [maxwelldu <dcj3sjt@163.com>]: Minimum Stability []: Package Type []: License []: Define your dependencies. Would you like to define your dependencies (require) interactively [yes]? no Would you like to define your dev dependencies (require-dev) interactively [yes]? no <?php <?php { <?php "name": "maxwelldu/car", namespace Ford\Fusion; "description": "composer study", "authors": [ { "name": "maxwelldu", "email": "dcj3sjt@163.com" } ], "require": {} } Do you confirm generation [yes]? yes
将composer.json修改成如下:
{ "name": "maxwelldu/car", "description": "composer study", "license": "MIT", "authors": [ { "name": "maxwelldu", "email": "dcj3sjt@163.com" } ], "minimum-stability": "dev", "require": { "php": ">=5.3.0" }, "autoload": { "psr-4": { "Ford\\Escape\\": "src/Ford/Escape", "Ford\\Fusion\\": "src/Ford/Fusion", "Ford\\Focus\\": "src/Ford/Focus", "Ford\\Fiesta\\": "src/Ford/Fiesta" } } }
根据上面的命名空间和目录的映射关系,包的结构现在应该是这样:
|____.gitignore
|____composer.json
|____composer.lock
|____README.md
|____src
| |____Ford
| | |____Escape
| | | |____Escape2013.php
| | |____Fiesta
| | | |____Fiesta2013.php
| | |____Focus
| | | |____Focus2013.php
| | |____Fusion
| | | |____Fusion2013.php
Escape2013.php
<?php namespace Ford\Escape; class Escape2013 { public static function info() { echo "This is Ford Escape2013!<br />"; } }
Fiesta2013.php
<?php namespace Ford\Fiesta; class Fiesta2013 { public static function info() { echo "This is Ford Fiesta2013!<br />"; } }
Focus2013.php
<?php namespace Ford\Focus; class Focus2013 { public static function info() { echo "This is Ford Focus2013!<br />"; } }
Fusion2013.php
<?php namespace Ford\Fusion; class Fusion2013 { public static function info() { echo "This is Ford Fusion2013!<br />"; } }
以上都梳理完毕后,需要安装composer来测试我们的包是否可以正常工作,安装它很简单在包的root目录下install即可:
composer install
安装后会在vendor/composer/autoload_psr4.php中生成命名空间和目录的映射关系,被包在一个数组中:
<?php // autoload_psr4.php @generated by Composer $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( 'Ford\\Fusion\\' => array($baseDir . '/src/Ford/Fusion'), 'Ford\\Focus\\' => array($baseDir . '/src/Ford/Focus'), 'Ford\\Fiesta\\' => array($baseDir . '/src/Ford/Fiesta'), 'Ford\\Escape\\' => array($baseDir . '/src/Ford/Escape'), );
然后我们新建一个测试文件show.php,用以下内容填充:
<?php require 'vendor/autoload.php'; use Ford\Escape as Escape; use Ford\Fiesta as Fiesta; use Ford\Focus as Focus; use Ford\Fusion as Fusion; echo Escape\Escape2013::info(); echo Fiesta\Fiesta2013::info(); echo Focus\Focus2013::info(); echo Fusion\Fusion2013::info();
然后在当前目录启动一个服务器
php -S localhost:8080
打开浏览器输入: http://localhost:8080/show.php
浏览器上面依次输出了:
This is Ford Escape2013!
This is Ford Fiesta2013!
This is Ford Focus2013!
This is Ford Fusion2013!
然后我们将show.php删除,然后将代码推送到github上面
打开 https://packagist.org/
用github帐号登录
然后提交一个包, 将github的地址 git@github.com:maxwelldu/car.git 填上
然后进行提交即可
相关推荐
"composer包demo" 是一个基础的实践教程,它没有实现复杂的功能,但包含了创建自定义Composer包的基本步骤。这个项目适用于那些想要了解如何编写和分享自定义Composer包的开发者,通过它,你可以学习到以下关键知识...
在 Laravel 框架中,开发人员经常需要创建和使用自定义的 Composer 包来扩展功能或实现特定需求。Composer 是 PHP 的一个依赖管理工具,它允许我们方便地管理和加载项目所需的库和组件。本教程将详细介绍如何在 ...
#### 三、创建自己的 Composer 包 创建 Composer 包的过程简单来说分为两步: 1. **填写包描述信息**:需要编写 `composer.json` 文件,指定包的基本信息。 2. **编写代码**:实现包的功能。 **示例:创建一个...
Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个...
现在,我们来看看一些常用的Composer包: 1. **Laravel**:由Taylor Otwell开发的流行PHP框架,用于构建Web应用程序。`laravel/framework`是其核心组件。 2. **Symfony Components**:Symfony是一套独立的PHP组件...
使用`jwt composer包`,例如`firebase/php-jwt`,可以轻松地在PHP项目中实现JWT的创建、验证和解码。首先,需要在项目的根目录下运行`composer require firebase/php-jwt`命令来安装这个包。之后,可以通过调用库...
- 创建`composer.json`文件,定义项目依赖和其他配置。 - 使用`require`命令安装库,例如`composer require package_name`。 - 更新项目依赖,使用`update`或`self-update`命令。 - 管理库版本,了解`~`、`^`、`...
创建一个新的PHP项目时,首先要创建一个`composer.json`文件,其中定义了项目所需的所有依赖及其版本。然后,运行`composer install`命令,Composer会自动下载并安装所有必要的库到项目中的`vendor`目录。 Composer...
每个库都有自己的`composer.json`,声明其依赖和其他元数据。`composer.lock`文件记录了确切的库版本,确保在不同环境中构建的一致性。 **5. 配置与优化** Composer支持自定义配置,例如设置镜像源以提高在中国的...
通过创建自定义的Composer包,开发者可以共享代码,提高工作效率,并促进代码重用。 首先,让我们了解Composer包的基本结构。一个标准的Composer包通常包含以下关键文件和目录: 1. `composer.json`:这是核心文件...
使用Composer管理项目依赖时,你需要创建一个`composer.json`文件,其中定义了项目所需的所有包及其版本。例如: ```json { "require": { "monolog/monolog": "^2.0", "slim/slim": "^4.0" } } ``` 然后,运行`...
通过运行这个文件,用户可以执行Composer的各种操作,如安装、更新项目依赖,或者创建自己的包。 Composer的工作原理是读取项目的`composer.json`文件,这是一个定义项目依赖的JSON格式文件。它列出了项目需要的...
Control4 Composer 编程指南...总的来说,Control4 Composer编程指南包2是深入学习和实践智能家居控制系统的宝贵资料,无论是初学者还是经验丰富的专业人员,都能从中受益匪浅,提升自己的Control4系统设计和实施能力。
Control4 Composer 编程指南包1是针对使用Control4智能家居系统的专业编程人员设计的一套详尽的使用手册。Control4是一家领先的智能家居自动化解决方案提供商,其Composer软件是用于配置、编程和管理智能家居系统的...
- 将`composer.phar`文件移动到该目录下,并创建一个批处理文件`composer.bat`,内容如下: ```bat @php "%~dp0composer.phar" %* ``` - 这样做可以让系统识别`composer`命令。 2. **验证安装**: - 安装完成...
该工具主要功能是依赖管理,开发者通过它来声明项目所需的依赖包,Composer会负责下载和更新这些依赖到项目中。 ### 安装Composer #### 系统要求 Composer有特定的系统需求,确保操作系统兼容,包括*nix系统和...
这个库是Composer安装的,Composer是PHP的一个依赖管理工具,它允许开发者方便地管理和更新项目中的各种依赖包。 `phpoffice/phpexcel`库的主要功能包括: 1. **读取Excel文件**:支持多种格式,如`.xls`(BIFF8 - ...
JS Composer 是一款专为 WordPress 设计的强大页面构建器,它允许用户通过直观的拖放界面轻松创建和编辑网站页面,无需掌握复杂的编程语言。这款插件极大地扩展了WordPress的功能,使得内容创作者能够自定义网站布局...