如何使用composer 使用进行包管理更合适

Packagist / Composer 中国全量镜像
Packagist / Composer 中国全量镜像
Packagist 镜像
请各位使用本镜像的同学注意:
本镜像已经依照 composer 官方的数据源安全策略完全升级并支持 https 协议!请各位同学
按照下面所示的两个方法将
还没安装 Composer 吗?请往下看 。
用法:有两种方式启用本镜像服务:
系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见
单个项目配置: 将配置信息添加到某个项目的 composer.json 文件中。见
例1:修改 composer 的全局配置文件(推荐方式)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer
例2:修改当前项目的 composer.json 配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:
composer config repo.packagist composer
上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):
&repositories&: {
&packagist&: {
&type&: &composer&,
以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):
&name&: &laravel/laravel&,
&description&: &The Laravel Framework.&,
&keywords&: [&framework&, &laravel&],
&license&: &MIT&,
&type&: &project&,
&require&: {
&php&: &&=5.5.9&,
&laravel/framework&: &5.2.*&
&require-dev&: {
&fzaninotto/faker&: &~1.4&,
&mockery/mockery&: &0.9.*&,
&phpunit/phpunit&: &~4.0&,
&symfony/css-selector&: &2.8.*|3.0.*&,
&symfony/dom-crawler&: &2.8.*|3.0.*&
&autoload&: {
&classmap&: [
&database&
&psr-4&: {
&App\\&: &app/&
&autoload-dev&: {
&classmap&: [
&tests/TestCase.php&
&scripts&: {
&post-root-package-install&: [
&php -r \&copy('.env.example', '.env');\&&
&post-create-project-cmd&: [
&php artisan key:generate&
&post-install-cmd&: [
&php artisan clear-compiled&,
&php artisan optimize&
&pre-update-cmd&: [
&php artisan clear-compiled&
&post-update-cmd&: [
&php artisan optimize&
&config&: {
&preferred-install&: &dist&
&repositories&: {
&packagist&: {
&type&: &composer&,
OK,一切搞定!试一下 composer install 来体验飞一般的速度吧!
镜像说明:一般情况下,安装包的数据(主要是 zip 文件)一般是从 < 上下载的,安装包的元数据是从 packagist.org 上下载的。
然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。
“Packagist 中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composer install 以及 composer update 的过程,并且更加快速、稳定。因此,即使 packagist.org、<
发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。
如何安装 Composer
安装前请务必确保已经正确安装了 。打开命令行窗口并执行 php -v 查看是否正确输出版本号。
打开命令行并执行下列命令安装最新版本的 Composer (以下指令摘自
,请前往查看最新的安装指令):
php -r &readfile(&#39;https://getcomposer.org/installer&#39;);& & composer-setup.php
php composer-setup.php
php -r &unlink(&#39;composer-setup.php&#39;);&
执行第一条命令下载下来的 composer-setup.php 脚本将简单的检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。
上述 3 条命令的作用依次是:
下载安装脚本(composer-setup.php)到当前目录。
执行安装过程。
删除安装脚本 -- composer-setup.php 。
局部安装上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!
全局安装全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。
Mac 或 Linux 系统:打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/ 目录下面:
sudo mv composer.phar /usr/local/bin/composer
Windows 系统:
找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。
将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。
在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。
@php &%~dp0composer.phar& %*
最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。
提示:不要忘了经常执行 composer selfupdate 以保持 Composer 一直是最新版本哦!composer自做教程_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
composer自做教程
上传于||文档简介
&&朋&#8203;友&#8203;给&#8203;老&#8203;总&#8203;讲&#03;D&#8203;V&#8203;I&#8203;A&#8203;做&#8203;的&#8203;教&#8203;程
大小:1.09MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢Composer快速入门 - 推酷
Composer快速入门
什么是Composer
是PHP的一个依赖管理工具。你可以在你的项目里声明你依赖的库,然后Composer会帮你解决以下问题:找到这些库以及这些库所依赖的库可以安装的版本,然后进行安装。所以Composer是一个依赖管理工具,而不是一个包管理工具(类似Yum或者Apt),因为它是基于每个项目去管理这些包,把这些包安装到项目里的某个目录。
Composer的安装
Composer要求
PHP 5.3.2+
版本以及一些PHP的配置,如果有不兼容的情况发生,在安装过程中会有提示。有两种方式安装Composer,一是本地安装,而是全局安装。
本地安装会把Composer安装到当前的目录下。运行以下命令进行安装:
$ php -r &copy('https://getcomposer.org/installer', 'composer-setup.php');&
$ php -r &if (hash_file('SHA384', 'composer-setup.php') === 'ef404f16bacfdcdfaf71b9aaac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;&
$ php composer-setup.php
$ php -r &unlink('composer-setup.php');&
一共4条命令,它们分别执行以下的操作:
下载安装文件到当前目录。
检验安装文件的SHA-384散列。
运行安装文件。
删除安装文件。
然后我们就可以运行执行以下命令来运行Compoer了:
$ php composer.phar
需要注意的是,第二步检查文件的散列,每一个版本安装文件的散列值都会不同的,所以每次安装最好都到
去获取安装代码。或者如果你觉得没有检查安装文件的必要的话,也可以跳过这条命令去执行下面的命令。当然从安全角度考虑,不建议这么做。
所谓全局安装,其实就是把Composer安装到
变量里的某个目录中,这样你就可以从任何地方去访问Composer了。个人也建议这么做。我们只需要把本地安装的composer执行文件移动到全局目录下即可:
$ mv composer.phar /usr/local/bin/composer
这样你就可以在任何地方直接运行
命令了。后续如没有特别说明,都是在全局安装的情况下执行命令。
Composer安装时支持3个选项。
--install-dir
--install-dir
选项可以修改Composer的安装路径,例如如果我们想把Composer安装在
$ php composer-setup.php --install-dir=bin
--filename
--filename
选项,我们可以修改Composer执行文件的名称(默认为composer.phar)。例如:
$ php composer-setup.php --filename=composer
如果想安装指定版本的Composer,可以使用
$ php composer-setup.php --version=1.0.0-alpha8
除了上面的安装方式外,还可以直接下载执行文件,请到
进行下载。
Composer的更新
更新Composer很简单,只需要执行以下命令:
$ composer selfupdate
Updating to version 1.1.2 (stable channel).
Downloading: 100%
Use composer self-update --rollback to return to version 06c62cecbcff63a87
# 或者(两者是等效的)
$ composer self-update
如果想进行版本的回滚,可以使用以下命令:
$ composer selfupdate --rollback
Rolling back to version _16-11-16-06c4562.
Composer的基本使用
composer.json文件
安装完Composer后,想要在项目里开始使用它,你唯一需要做的就是创建一个
composer.json
文件。这个文件描述了你这个项目所依赖的包以及一些其他的元信息。
通过require这个配置项,我们可以指定项目的依赖。假设我们项目需要用到
monolog/monolog
这个日志库,那么我们可以这样配置
composer.json
&require&: {
&monolog/monolog&: &1.0.*&
的值是一个对象,对象里的每一个键对应一个依赖,通过键名为包的名称,键值为包的版本。
包名由vendor名和项目名组成,这样可以保证包名的唯一性。项目名可以重复,但是vendor名每个人都不一样。以
monolog/monolog
为例,vendor名和项目名都是
在上面的例子中,我们要求
monolog/monolog
,表示任何的1.0的开发分支版本都满足要求。版本的指定方式有很多种,在后面的文章中会进行详细的解说。
composer.json
文件并配置好
后,我们就可以安装依赖了,只需要运行以下的命令:
$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing monolog/monolog (1.0.2)
Downloading: 100%
Writing lock file
Generating autoload files
Composer会根据上面配置的版本约定下载最新版本的
monolog/monolog
到默认目录
composer.lock文件
运行完上面的
命令后,你会发现除了
目录,还会多了一个
composer.lock
文件。这个文件保存了项目已经安装的每个包的具体版本。在运行
命令的时候,如果存在这个文件,则Composer会根据这个文件下载对应版本的包。这样的好处是可以保证各个环境的依赖的版本一致,否则如果没有这个文件,每个环境在运行
时可能下载到的版本就不一致了。所以建议把
composer.lock
文件也放到版本控制里。
要更新依赖,只需要运行
# 更新所有的依赖
$ composer update
# 更新某个依赖
$ composer update monolog/monolog
下载完依赖后,我们可以开始使用依赖所提供的库了。Composer会为下载的库创建自动加载文件
vendor/autoload.php
,我们只需要包含这个文件就能轻松的调用各个库的功能。以
monolog/monolog
$log = new Monolog\Logger('name');
$log-&pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log-&addWarning('Foo');
我们不用关心库文件的加载问题,Composer的
autoload.php
文件已经帮我们处理好了各个库的自动加载。
Packagist 镜像
至此,我们安装好了Composer,也知道了它的基本用法,基本可以快乐的玩耍了。但是众所周知,由于某些原因,github和packagist在国内有时会访问不了,或者速度很慢,这就会导致使用Composer时的各种不爽。还好我们国内有个
可以解决这个问题,只需要把仓库的路径修改为镜像的路径即可。
有两种方式,一是修改Composer的全局配置(推荐的方式):
$ composer config -g repo.packagist composer
这个命令会修改Composer的全局配置文件
config.json
。二是修改单个项目的配置:
$ composer config repo.packagist composer
这个命令会修改项目下的
composer.json
文件,添加如下的配置信息:
&repositories&: {
&packagist&: {
&type&: &composer&,
当然你也可以直接手动修改
composer.json
文件,添加上面那段配置信息。
详情请访问:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
如今复杂的 PHP 项目往往会使用多个第三方库,它们拥有自己的依赖关系。了解 Composer (一个为了 PHP 社区而在
PHP 中构建的开源项目)如何在现代 PHP 应用程序中解决这个依赖关系处理难题。
, CTO; 大会主席和主编, php[architect]
Eli White 构建 Web 应用程序已有超过 20 年的时间,他从发布 PHP 4 的那天起就喜欢上了 PHP。自那以后,他一直强烈支持
PHP,并在他所从事的每个项目中使用 PHP。他目前是 php[架构师] 和创始合伙人的主编和会议主席,还是 musketeers.me 的
CTO。他还是一个狂热的作家(博客、文章和书籍),并在众多研讨会上发表过演讲。
由于 PHP 已经成熟,使用它建立的应用程序的复杂性在急剧增长。现代 PHP
开发人员往往依靠第三方库来帮助自己更快地构建软件项目。例如,如果不使用现在为 PHP 提供的维护良好的第三方库,那么有可能无法构建像
这种规模的应用程序。但是,软件重用的好处是有代价的:您不仅必须管理每个应用程序安装所需的库的列表,还必须管理所创建的依赖关系树,因为所使用的库均构建于其他库之上。您如何能够管理多个库的复杂且相互依赖的安排?
开发人员在过去常用的两种依赖关系处理解决方案已失去其效率。其中一个解决方案是将自己所需的所有库与自己的代码一起签入到版本控制存储库中。这种技术在某程度上是可行的,但所造成的麻烦往往比它解决的问题更大。您需要维护自己的本地库版本。您必须通过下载新的版本,并将其签入存储库,从而手动执行任何可用的库错误修复。最终,版本控制中会有一个巨大的变更日志,它与实际代码完全无关。由于这些原因,库一般会逗留在开始时刚好签入的那个版本,很少被更新。 PHP Extension and Application Repository (PEAR) 项目的部分设计目的是帮助您解决这个问题。PEAR
提供了一组配合工作的库,程序员可以为该库做出贡献。PEAR 还包括命令行工具,用于安装所需的库及其依赖关系(如果有的话)。PEAR
在很长一段时间中曾是最好的办法,并且有很多人使用它,但这个系统也有其不足之处。 PEAR
库安装被全局存储在操作系统上。虽然这种设计可以避免将库签入到您自己的版本控制存储库中,但它导致的问题比它解决的问题还要多。永远不知道在自己可能使用的任何系统上到底在运行哪个库版本。这种混乱往往成为虚假错误的来源:您会在新服务器上安装自己的应用程序,然后感到困扰,为什么它不工作,最终您可能认识到,原因是有问题的服务器没有合适的
PEAR 库。您需要访问权限来安装这些全局库(这是很多人在共享托管方面都觉得棘手的一个问题)。“大家都知道,与第一步编写程序相比,调试的难度要高得多。
所以,如果在编写时尽可能聪明一些,又怎么会需要调试呢?”Brian Kernighan 2011 年 4 月,两位 PHP 开发人员(Nils Adermann 和 Jordi Boggiano)认为 PHP
的依赖关系处理问题需要有一个新的解决方案,并开始进行开发。他们在 2012 年 3 月 1 日发布了 。在 Composer
中,您可以创建一个配置文件,指定应用程序所需的第三方库(无论它们被托管在哪里)。然后运行 Composer,编写
完整的应用程序:Composer 下载您指定所有的库及其所有依赖关系。本文将介绍 Composer 的基础知识,演示如何开始在 PHP
项目中使用该工具。安装 ComposerComposer 是一个多平台工具。在任何基于 UNIX&#174; 或 Linux&#174; 的计算机上,安装 Composer
都很简单。您可以通过 curl 和 PHP 直接运行安装程序,创建一个本地安装: curl -sS https://getcomposer.org/installer | php 上面的命令在本地 composer.phar 可执行文件中创建一个 Composer 安装。为了系统上的任何地方都能全局访问这个安装,请将
composer.phar 复制到您的路径的一个目录中,如本例所示(您可能需要使用 sudo 给自己赋予根目录的写权限): mv composer.phar /usr/local/bin/composer 现在,您可以在系统上任何位置从命令行运行 composer。 在 Windows&#174;上,手动安装比较困难,所以 Composer 创建者开发了一个 ,您可以下载并运行它。在完成安装后,您可以从 Windows 命令行使用 Composer。基本用法 Composer 是一个功能强大的工具,提供了数量惊人的选项。但是,最常见的用法是,根据第三方提供的配置,为第三方 PHP
应用程序或框架创建/下载/安装一个代码库。例如,可以
Zend 框架及其所有依赖关系。运行 Composer 的 install 命令,Composer
就会完成余下的工作。如果全局安装了 Composer(或安装在 Windows 上),请运行以下命令: composer install 如果只对一个应用程序完成了本地 Composer 安装,则运行: php composer.phar install 在本文的其余部分,我的示例假设您已全局安装了 Composer。 除了下载项目/应用程序所需的所有库之外,Composer 还提供了一个方法,让您可以轻松地包括所有的库。它将所有的库安装到一个命名为 vendor
的文件夹,将它们与您自己的项目代码区分开来。在 vendor 文件夹中,它创建了一个名为 autoload.php
的文件。在您的项目中包括该文件,这等于为 Composer 所下载的所有库都安装了一个自动加载程序: require 'vendor/autoload.php';Composer 如何查找库 要下载库包,Composer 首先需要知道在哪里可以找到这些软件包。信息由 Composer 存储库 提供:在线来源列出了
Internet 上提供的软件包、如何检索它们,以及它们自己的依赖关系。虽然任何人都可以维护自己的存储库,以提供对内部库的访问权限(Composer
网站为此提供了 ),但您会使用的主要存储库是 。Packagist 提供为 PHP 中的大部分开源项目提供软件包。您可以去那里找到自己需要的库。 软件库往往不是良好的合作对象。将所有 Packagist 库结合在一起的粘合剂是由
(原名 PHP
Standards Group)提供的,该组织是在
上成立的。成立 PHP-FIG(代表着众多流行的 PHP
应用程序和框架的一组人)就是为了看看人们的项目如何能够更好地协同工作。该合作的高潮是 PHP Standards Recommendations
(PSR) 的创建,它描述库的可选标准。实现这些共同标准的库能够在一组共同的期望下互操作。 最重要的 PSR 是
和 ,它们促进了 Composer
的创建。这些 PSR
为类和命名空间声明一个共同的命名方法,以及它们应该如何将文件映射到文件系统上。然后,一个共同的自动加载程序接口可以从它需要的任何库加载类。创建一个通用的标准方式,让库不需要覆盖彼此就可以共享它们的类,这使得
Composer 变得非常有效。为自己的项目配置 Composer 现在,您已经知道了如何安装 Composer,了解了自动装载的工作原理,并且能够找到自己想要使用的软件包,我将介绍一个为自己的项目设置
Composer 的示例。 我将会开始编写一个新的 PHP 项目,这是一个小程序,能够将 Markdown 文件转换为 HTML 输出。在 Packagist 搜索
markdown,显示
库作为一个不错的选择,并显示项目的
的URL,如图 1 所示: 图 1. 在 Packagist 上的库条目 为了告诉 Composer 在您的项目中要包括哪些文件,创建一个名为 composer.json 的配置文件。这个 JSON
格式的文件可以包含各种命令,但您需要的最常用的(而且往往是惟一的)命令是 require
键。我将自己想要的软件包名称以及将要支持的版本传递给这个键: {
"require":{
"michelf/php-markdown":"1.4.*"
} 现在,我可以在我的应用程序目录中运行 composer install。 Composer
需要几分钟来下载我所指定的库要求到一个 vendor 目录中,并为我创建一个包括此目录的自动加载程序。Composer 也创建了另一个文件,即
composer.lock,我会立刻更详细地介绍它。命令和输出看起来如下所示: & ls
composer.json
& composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing michelf/php-markdown (1.4.1)
Downloading:100%
Writing lock file
Generating autoload files
composer.json composer.lock vendor/ 现在我可以编写依赖于 michelf/php-markdown 软件包的代码。下面简短的 PHP 脚本将完成我想做的工作: &?php
require 'vendor/autoload.php';
use \Michelf\M
echo Markdown::defaultTransform(file_get_contents("php://stdin")); 多亏了 Composer,我获得了一个简单明了的解决方案。我选择的 Markdown
包碰巧没有额外的依赖关系。但是,如果我选择了一个有依赖关系的软件包,Composer 将在同一时间自动下载所有这些依赖关系并配置它们。指定版本 您可以根据自己的软件需求,将任意数量的库添加到 composer.json
文件,此外,对于每一个库,您都可以指定想接受的版本。指定版本是一个很重要的部分,可以确保您的软件始终可用。通过在版本号中使用通配符,甚至可以允许
Composer 以您的名义升级库。在前面的示例中,我指定的版本为 "1.4.*"。现在,每当运行
composer install 时,Composer 将查找 1.4 版库的最新版本,但不会接受 1.5、2.0
或其他任何更高版本。如果我希望总是获得库的最新版本,那么我可以指定 "*"(但如果底层 API
被更改,这可能会引起问题)。 表 1 显示,在指定版本限制时可以使用的选项的完整列表。表 1. 软件包的版本限制规范示例描述确切版本1.0.2软件包的确切版本。范围&=1.0&=1.0 &2.0&=1.0 &1.1 || &=1.2比较运算符可以指定有效版本的范围。有效的运算符是
&、&=、&、&=
和 !=。可以定义多个范围,而且默认情况下按照 AND 处理,或者用双竖线
(||) 分开它们,则作为一个 OR 运算符。连字符范围1.0 - 2.0创建一个包容性的版本集。通配符1.0.*带有 *
通配符的模式。1.0.* 相当于
&=1.0 &1.1。波浪运算符~1.2.3“下一个重要版本”:允许最后一位数字增加,因此变得和
&=1.2.3 &1.3.0 一样。允许最后一位数字增加。^运算符^1.2.3“下一个重要版本”:类似于波浪线运算符,但假设语义版本和直到下一个主要版本的所有变更都应该被允许,因此变得和
&=1.2.3 &2.0 一样。软件包稳定性 在配置 Composer
获取项目所需要的准确的库时,另一个要考虑的因素是想要的库版本有多稳定。如果需要最新的版本或正在帮助测试软件,那么可以请求软件包的测试版或开发分支。您可以指定稳定性标志,将它添加到
require 字符串的末尾,并使用 @。例如,为了请求 PHPUnit
的最新开发版本,您可以指定:{
"require":{
"phpunit/phpunit":"4.8.*@dev"
}对于引用,Packagist 显示存在哪些分支,以及引用它们需要使用的字符串,如
所示。版本锁定 使用 Composer 的巨大好处是,版本控制中不需要包括第三方库。在发布软件的新安装时,可以允许 Composer
为您下载并配置所有库,从而保持版本控制清洁。但是,您可能会遇到问题。想象一下,您的网站运行 20
个并发服务器,全部使用不同版本的库,因为代码的部署和 composer install
的运行分别在不同的时间发生。或者更简单地说,多个开发人员可能有不同的库,并且无法复制彼此的错误。其结果可能是灾难性的。 Composer 为这个问题提供了一个解决办法。回想 "" 一节,初次运行 composer install 时创建了一个
composer.lock 文件。该文件指定到底要安装哪些库,以及过程中下载哪些特定的版本。当您将项目提交到版本控制软件中的时候,请提交
composer.lock 文件,而不是 vendor 目录。当准备好一个代码的新部署,并且运行了
composer install 的时候,Composer
会首先查找一个锁定文件。如果找到该文件,则会安装一个与原始安装完全相同的副本,以确保所有安装的一致性。 当然,还需要了解迁移动到新代码版本的方式,最好是采用比删除锁定文件和整个 vendor 目录更好的方式。Composer 以
update 命令的形式提供该工具。当运行 composer update 时,Composer
会参照 JSON
文件的最新配置,比较已安装的软件版本与锁定文件。如果配置允许的较新版本的软件是可用的(或者,如果自上次安装后,新库已被添加到配置),Composer
会下载新的库,并对它们进行相应的配置。为自己的类创建一个自动加载程序 Composer 还有许多内置的功能,可以在
中阅读了解这些功能。其中一个最好的功能是,您可以在配置中指定自己的类,这使得 Composer
可以自动在自动加载程序中生成项目的代码。此功能让您免于自己创建独立于 Composer 的自动加载程序。在这里,我可以更新以前的 composer.json 文件来创建自己的自动加载程序: {
"require":{
"michelf/php-markdown":"1.4.*"
"autoload":{
"psr-4":{"Converter\\":"src/"}
} 在本例中,我指定了一个名为 Converter 的命名空间,并说明该命名空间的所有类文件均存在于名为 src
的相对目录中。所以,如果我有一个名为 Converter\CommandLine
的类,自动加载程序将会查找这个类,它在文件系统中被保存为 src / CommandLine.php。这个文件现在是为我生成的一个 PSR-4
兼容的自动加载程序。提供自己的软件包 此时,我可以将 Markdown 到 HTML 的转换器应用程序提供为一个 Packagist
上的软件包。(由于转换器是一个应用程序,而不是一个可重用的库,将它作为一个软件包提供并没有实际意义,但是,为了本练习的需要,我们假装它是一个库)。从本质上讲,通过创建我的
composer.json 文件,该应用程序本身是一个软件包,可以安装它。包名称的格式必须是
vendor/package。所以,在我的例子中,我将下面的代码添加到配置文件: "name":"EliW/Converter", 其他一些配置也值得补充。您可以将所需的 PHP 版本指定为 Composer 将执行的虚拟软件包名称。(您有许多选项,可以强制版本号,而不是让
Composer 假定标准的版本控制系统模式。您可以提供元数据,让软件包列表看起来像是完整的。)为了指定 PHP
版本号,并将我自己的转换器打包为完整的软件包,我会这样做: {
"name":"EliW/Converter",
"require":{
"michelf/php-markdown":"1.4.*",
"php":"&=5.3.0"
}配置现在是完整的。当我将自己的应用程序提交给一个在线版本控制系统(如 GitHub),我可以登录到我的 Packagist
帐户,并提交我的软件包信息,让其他人可以将我的应用程序包含在他们的项目中。结束语 在本期
文章中,我介绍了如何使用 Composer 从第三方库组装项目的基本知识。查看 ,找到有关 Composer
的不常用功能的更深入讨论,并了解如何托管自己的内部库,而无需通过 Packagist 帮助组织复杂的代码库。按照本文章系列的进展,我已经介绍了 PHP
本身的演变过程,它如何满足现代安全要求,以及它如何采用现代的依赖关系管理和软件包管理系统来处理日益复杂的现代代码库。在下期文章中,我将讨论 PHP
生态系统的发展情况,让开发人员可以通过使用 PuPHPet 来管理其部署和开发环境。
参考资料 :查看 developerWorks PHP 项目资源来提升您的 PHP 技巧。 ""(Dan Denoncourt,developerWorks,2011
年 3 月):获得命名空间语法的概述,学习其用法的最佳实践,并查看使用命名空间的一个小型 Model-View-Controller
应用程序示例。 ""(Dan Denoncourt,developerWorks,2010 年 12
月):了解如何和在何处使用 PHP 闭包的更多信息。:浏览 developerWorks 上的所有 PHP 内容。:了解如何以现代方式构建 PHP 项目的更多信息。:咨询所有 PHP 文档的官方源代码。:获得有关 PHP 的新闻、视图和社区信息。:查看致力于 PHP 教育的在线杂志、印刷杂志和最近新闻。 :通过专门关于 Web 技术的文章和教程,扩展您在网站开发方面的技能。:这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax
的新信息都能在这里找到。查看 ,了解更多和 HTML5 相关的知识和动向。加入 ,developerWorks 社区是一个面向全球 IT
专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Web development, Open sourceArticleID=1008726ArticleTitle=更新后的
PHP: 用于 PHP 依赖关系处理的 Composerpublish-date=

我要回帖

更多关于 composer如何使用 的文章

 

随机推荐