创建一个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 填上
然后进行提交即可
相关推荐
2、通过composer init命令创建一个composer.json的文件 里的类文件包
Hello, Composer!
Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个...
它可以将任何 composer.json 文件作为输入,并且将所有需要的(根据它们的版本约束)包转存到 Composer 库文件中。用法:下载 Composer:curl -sS https://getcomposer.org/installer | php安装 Satis:...
本文实例讲述了CI框架使用composer安装的依赖包的相关操作步骤与方法。分享给大家供大家参考,具体如下: 本文针对 Linux 系统,windows 第一步 根据 composer 官网进行安装 后面的步骤相同 step 1 全局安装 ...
Drupal 安装程序 这是一个简单的 Composer 包,它将在... 然后在项目的根目录创建一个composer.json文件: { " require " : { " thecodingmachine/drupal " : " ~7.23 " } } 最后,运行 php composer.phar install
WordPress的页面拖放编辑器。可以完全控制你的WordPress网站,建立任何布局,只要你敢想 - 而无需编程知识。这个有汉化包,0分下载。
使用 Composer,您可以通过创建一个名为 composer.json 的文件来指定项目所需的依赖项和其他配置。在 composer.json 文件中,您可以列出您的项目依赖的 PHP 包及其版本要求。当您运行 Composer 命令时,它会根据这些...
简单的 composer 包样板(我在创建空白 composer 包时使用的只是一些默认文件) 去做: 复制到本地: composer create-project Stilliard/composer-package-boilerplate PROJECT_NAME -s dev 阅读后删除这些顶行 ...
# - composer 包列表生成器Module 创建一个按优先级排序的项目 Composer 包的有序列表。 优先级由包之间的依赖关系自动确定,这些依赖关系通常位于项目根文件夹中的composer.json中。 如果包package_A需要包package_...
资产包定义的惰性加载器以提高性能 导入具有根软件包和已安装软件包的依赖项的过滤器,以显着提高更新的性能 自动获取并创建在以下位置定义的Asset VCS存储库: 自动获取和创建每个资产包中定义的依赖项的Asset VCS...
上一篇中我们已经建立了一个空的 Composer 项目,本篇将讲述如何构建路由。 久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架。在 CI 中我学到了很多,其中...
定义一个包最简单的入门方法是在composer.json文件中定义一个自定义包。 您所需要的只是您要安装的扩展程序的包文件。 (即您从供应商网站下载的安装程序文件) 在 Joomla 安装的根目录中创建composer.json文件并使...
这是如何使用Composer创建任务链的示例。 考虑以下情形:您想要为应用程序用户获取关联的Twitter帐户详细信息,为该用户获取不同类型的Twitter数据,在应用程序UI上显示它们,然后在分析数据库中跟踪事件。 所有...
使用Skin Composer为LibGDX的Scene2D.UI创建皮肤! 女43 带有可配置选项的所有小部件的实时预览 在编辑器中指定着色,平铺和自定义创建的Drawable 包括BitmapFont编辑器和图像字体生成器(如Shoebox) Freetype...
在上一篇教程中,我们使用 codingbean/macaw 这个 Composer 包构建了两条简单路由,第一条是响应 GET ‘/fuck’ 的,另一条会 hold 住所有请求。其实对 PHP 框架来说,有了路由就有了一切。所以接下来我们要做的事情...
Drupal项目的Composer模板 该项目模板提供了用于使用...composer create-project命令将所有文件的所有权传递给创建的项目。 您应该创建一个新的Git存储库,并提交.gitignore文件未排除的所有文件。 模板做什么? 在
laravel-composer 安装 composer require emtiazzahid/laravel-composer 在providers部分将服务提供程序添加到config/app.php Emtiazzahid \ LaravelComposer \ LaravelComposerServiceProvider ::class, 在您的...
创建composer.json并添加以下内容 { "require" : { "setkyar/mmfont" : "dev-master" } } 并通过终端运行$ composer install 用法 创建新的 php 文件并添加以下内容 <?php // Display Errors On ini_set('...