【4858.com】急需领会的,开辟者该知道的

By admin in 4858.com on 2019年7月14日

Composer 是新一代的PHP依赖管理工科具。其介绍和中坚用法能够看那篇《Composer
PHP注重管理的新时代》。本文介绍使用Composer的七个小本领,希望能给你的PHP开采带来方便。

Composer是新一代的PHP正视管理工具。其牵线和基本用法可以看那篇《PHP管理信赖(dependency)关系工具
Composer
安装与行使》。本文介绍使用Composer的四个小本领,希望能给你的PHP开垦带来福利。

PHP 开辟者该知情的 5 个 Composer 小技艺,开垦者composer

Composer 是新一代的PHP依赖管理工科具。其介绍和骨干用法能够看那篇《Composer
PHP正视管理的新时期》。本文介绍使用Composer的四个小技能,希望能给您的PHP开拓带来福利。

1. 仅更新单个库

只想翻新某些特定的库,不想翻新它的兼具正视,很轻易:

composer update foo/bar 

除此以外,这几个技术还足以用来消除“警告新闻难题”。你势必见过这么的警戒新闻:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them. 

擦,什么地方出难点了?别惊慌!假如你编辑了composer.json,你应该拜候到这么的音信。譬喻,假如您增添或更新了细节音讯,比方库的汇报、小编、更加多参数,乃至只是增添了三个空格,都会变动文件的md5sum。然后Composer就能警告你哈希值和composer.lock中记载的分化。

那正是说大家该怎么做呢?update指令能够立异lock文件,可是固然只是扩大了有个别描述,应该是不筹划更新任何库。这种景观下,只需update nothing

$ composer update nothing
Loading composer repositories with package information 
Updating dependencies 
Nothing to install or update 
Writing lock file 
Generating autoload files 

那样一来,Composer不会更新库,可是会更新composer.lock。注意nothing并不是update一声令下的关键字。只是未有nothing
这几个包导致的结果。假使您输入foobar,结果也一律。

假使您用的Composer版本丰裕新,那么你能够一贯动用--lock选项:

composer update --lock 

1. 仅更新单个库

1. 仅更新单个库

只想翻新有个别特定的库,不想翻新它的兼具信赖,很简单:

composer update foo/bar

【4858.com】急需领会的,开辟者该知道的。其它,这么些技术还足以用来消除“警告音信难题”。你势必见过如此的警戒音讯:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

擦,何地出标题了?别惊慌!假设你编辑了composer.json,你应该拜访到这么的音讯。比如,借使您增加或更新了细节新闻,比方库的呈报、笔者、更加多参数,以至仅仅增添了三个空格,都会变动文件的md5sum。然后Composer就能警告你哈希值和composer.lock中记载的不等。

那么咱们该咋办吧?update指令能够创新lock文件,不过只要只是扩张了一些呈报,应该是不希图更新任何库。这种景色下,只需update nothing

$ composer update nothing
Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Writing lock file
Generating autoload files

那样一来,Composer不会更新库,然则会更新composer.lock。注意nothing并不是update命令的珍视字。只是未有nothing 这一个包导致的结果。就算你输入foobar,结果也一律。

只要你用的Composer版本丰盛新,那么您能够一向动用--lock选项:

composer update --lock
2. 不编辑composer.json的情况下安装库

您或者会认为每安装几个库都急需修改composer.json太麻烦,那么你能够平昔利用require命令。

composer require "foo/bar:1.0.0" 

本条方式也可以用来急忙地新开三个类别。init命令有--require挑选,能够自动编写composer.json:(注意大家利用-n,那样就无须回答难点)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
  "require": {
    "foo/bar": "1.0.0"
  }
}

只想翻新有些特定的库,不想翻新它的全部信赖,异常粗略:

2. 不编辑composer.json的景况下安装库

你可能会以为每安装三个库都亟待修改composer.json太麻烦,那么您能够直接行使require命令。

composer require "foo/bar:1.0.0"

这么些主意也能够用来急忙地新开一个项目。init命令有--require分选,能够自动编写composer.json:(注意我们接纳-n,这样就毫无回答难题)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
    "require": {
        "foo/bar": "1.0.0"
    }
}
3. 派生很轻巧

开头化的时候,你试过create-project命令么?

composer create-project doctrine/orm path 2.2.0 

这会自行克隆仓库,并检出钦定的版本。克隆库的时候用那个命令很实惠,不须要寻觅原始的U奥迪Q5I了。

composer update foo/bar

3. 派生很轻巧

初叶化的时候,你试过create-project命令么?

composer create-project doctrine/orm path 2.2.0

那会自行克隆宾馆,并检出钦定的版本。克隆库的时候用那些命令很有益,无需研究原始的U普拉多I了。

4. 虚拟缓存,dist包优先

前不久一年来讲的Composer会自动存档你下载的dist包。默许设置下,dist包用于加了tag的本子,举个例子"symfony/symfony": "v2.1.4",恐怕是通配符或版本区间,"2.1.*"">=2.2,<2.3-dev"(假诺您使用stable作为你的minimum-stability)。

dist包也能够用于诸如dev-master等等的分支,Github允许你下载有些git引用的压缩包。为了强制行使压缩包,并非克隆源代码,你可以运用installupdate--prefer-dist选项。

下边是四个例证(笔者动用了--profile慎选来显示试行时间):

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s

$ composer install --profile
Loading composer repositories with package information 
Installing dependencies 
 - Installing twig/twig (v1.12.2)
  Downloading: 100%

Writing lock file 
Generating autoload files 
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

$ rm -rf vendor

$ composer install --profile
Loading composer repositories with package information 
Installing dependencies from lock file 
 - Installing twig/twig (v1.12.2)
  Loading from cache

Generating autoload files 
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s 

这里,twig/twig:1.12.2的减弱包被保存在~/.composer/cache/files/twig/twig/1.12.2.0-v1.12.2.zip。重新安装包时直接选择。

除此以外,那么些能力还足以用来化解“警告消息难题”。你肯定见过这么的警戒消息:

4. 思考缓存,dist包优先

近年一年以来的Composer会自动存档你下载的dist包。暗中认可设置下,dist包用于加了tag的版本,比方"symfony/symfony": "v2.1.4",大概是通配符或版本区间,"2.1.*"">=2.2,<2.3-dev"(如若你选拔stable作为你的minimum-stability)。

dist包也能够用于诸如dev-master等等的道岔,Github允许你下载某些git引用的压缩包。为了强制行使压缩包,并非克隆源代码,你可以选拔installupdate--prefer-dist选项。

上边是一个例子(笔者动用了--profile分选来展现实践时间):

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s

$ composer install --profile
Loading composer repositories with package information
Installing dependencies
  - Installing twig/twig (v1.12.2)
    Downloading: 100%

Writing lock file
Generating autoload files
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

$ rm -rf vendor

$ composer install --profile
Loading composer repositories with package information
Installing dependencies from lock file
  - Installing twig/twig (v1.12.2)
    Loading from cache

Generating autoload files
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s

这里,twig/twig:1.12.2的减少包被保存在~/.composer/cache/files/twig/twig/1.12.2.0-v1.12.2.zip。重新安装包时直接选取。

5. 若要修改,源代码优先

当你供给修改库的时候,克隆源代码就比下载包方便了。你能够动用--prefer-source来强制选择克隆源代码。

composer update symfony/yaml --prefer-source 

接下去你可以修改文件:

composer status -v 
You have changes in the following dependencies: 
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
  M Dumper.php

当您策动更新二个改造过的库的时候,Composer会提示你,询问是还是不是吐弃修改:

$ composer update
Loading composer repositories with package information 
Updating dependencies 
 - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
  The package has modified files:
  M Dumper.php
  Discard changes [y,n,v,s,?]?
Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

5. 若要修改,源代码优先

当您必要修改库的时候,克隆源代码就比下载包方便了。你能够行使--prefer-source来强制选取克隆源代码。

composer update symfony/yaml --prefer-source

接下去你能够修改文件:

composer status -v
You have changes in the following dependencies:
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
    M Dumper.php

当你筹算更新四个改换过的库的时候,Composer会提示您,询问是或不是扬弃修改:

$ composer update
Loading composer repositories with package information
Updating dependencies
  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
    The package has modified files:
    M Dumper.php
    Discard changes [y,n,v,s,?]?
为生育境况作企图

最终提示一下,在布局代码到生育遭逢的时候,别忘了优化一下电动加载:

composer dump-autoload --optimize 

安装包的时候能够等效采纳--optimize-autoloader。不加这一选项,你只怕会意识60%到五分之三的习性损失。

只要你需求帮扶,可能想要精晓某些命令的内部原因,你能够阅读合爱沙尼亚语档或者中文文书档案,也得以查看JoliCode做的这么些交互式备忘单。


原稿地址:5 features to know about Composer
PHP
译文地址:PHP 开拓者该知道的 5 个 Composer
小技巧

Composer
是新一代的PHP正视管理工科具。其介绍和中坚用法能够看那篇《Composer
PHP注重管理的新时代》。本文介绍使用Composer的八个小本事,希望能给您的PHP开荒带来方便。

擦,哪儿出难题了?别惊慌!即便您编辑了composer.json,你应有会看到如此的音讯。比方,假诺您增添或更新了细节音信,比如库的陈诉、小编、更加多参数,以至单独扩展了三个空格,都会转移文件的md5sum。然后Composer就能警告你哈希值和composer.lock中记载的不一样。

为生育碰到作准备

末尾提示一下,在布局代码到生育境遇的时候,别忘了优化一下电动加载:

composer dump-autoload --optimize

安装包的时候能够同样选用--optimize-autoloader。不加这一选项,你或许会意识十分二到20%的品质损失。

假若你供给帮助,或许想要明白某些命令的内情,你能够阅读官方文书档案恐怕普通话文书档案,也足以查阅JoliCode做的那么些交互式备忘单。


原版的书文地址:5 features to know about Composer PHP
译文地址:PHP 开垦者该知道的 5 个 Composer 小本领

开拓者该知道的 5 个 Composer
小技术,开采者composer Composer
是新一代的PHP正视管理工科具。其介绍和骨干用法能够看这篇《Composer
PHP信赖管…

1. 仅更新单个库

只想翻新某些特定的库,不想翻新它的有着注重,很简单:

composer update foo/bar 

其它,那些本领还足以用来消除“警告音讯难点”。你一定见过如此的告诫消息:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them. 

擦,哪儿出难点了?别惊慌!假若你编辑了composer.json,你应当会看出如此的音信。比方,如若您扩张或更新了细节消息,比方库的陈说、作者、更加多参数,乃至单独扩展了叁个空格,都会变动文件的md5sum。然后Composer就能警告你哈希值和composer.lock中记载的不等。

那正是说大家该咋办呢?update一声令下能够立异lock文件,不过只要单独扩展了部分陈诉,应该是不筹算更新任何库。这种场地下,只需update nothing

$ composer update nothing
Loading composer repositories with package information 
Updating dependencies 
Nothing to install or update 
Writing lock file 
Generating autoload files 

那样一来,Composer不会更新库,可是会更新composer.lock。注意nothing并不是update命令的第一字。只是未有nothing
这么些包导致的结果。如果您输入foobar,结果也一样。

万一您用的Composer版本丰富新,那么你能够一向运用--lock选项:

composer update --lock 

那么大家该怎么办吧?update命令能够创新lock文件,然则借使单独扩大了部分描述,应该是不筹划更新任何库。这种意况下,只需update
nothing:

2. 不编辑composer.json的状态下安装库

你或然会感觉每安装三个库都亟待修改composer.json太麻烦,那么您能够一直动用require命令。

composer require "foo/bar:1.0.0" 

那几个主意也足以用来比较快地新开三个项目。init命令有--require选料,能够自行编写composer.json:(注意大家应用-n,那样就不要回答难点)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
  "require": {
    "foo/bar": "1.0.0"
  }
}
$ composer update nothing
Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Writing lock file
Generating autoload files
3. 派生很轻易

伊始化的时候,你试过create-project命令么?

composer create-project doctrine/orm path 2.2.0 

这会活动克隆旅舍,并检出钦定的本子。克隆库的时候用那个命令很有益,没有须要找出原始的UXC60I了。

那样一来,Composer不会更新库,不过会更新composer.lock。注意nothing并不是update命令的主要字。只是没有nothing
那些包导致的结果。假诺您输入foobar,结果也一直以来。

4. 设想缓存,dist包优先

新近一年以来的Composer会自动存档你下载的dist包。暗许设置下,dist包用于加了tag的本子,比方"symfony/symfony": "v2.1.4",可能是通配符或版本区间,"2.1.*"">=2.2,<2.3-dev"(假诺您接纳stable用作你的minimum-stability)。

dist包也能够用来诸如dev-master等等的分段,Github允许你下载有些git援引的压缩包。为了强制行使压缩包,实际不是克隆源代码,你能够运用installupdate--prefer-dist选项。

下边是一个例证(作者动用了--profile4858.com ,选用来体现实施时间):

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s

$ composer install --profile
Loading composer repositories with package information 
Installing dependencies 
 - Installing twig/twig (v1.12.2)
  Downloading: 100%

Writing lock file 
Generating autoload files 
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

$ rm -rf vendor

$ composer install --profile
Loading composer repositories with package information 
Installing dependencies from lock file 
 - Installing twig/twig (v1.12.2)
  Loading from cache

Generating autoload files 
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s 

这里,twig/twig:1.12.2的削减包被保存在~/.composer/cache/files/twig/twig/1.12.2.0-v1.12.2.zip。重新安装包时直接动用。

借使您用的Composer版本丰富新,那么你能够直接采纳–lock选项:

5. 若要修改,源代码优先

当您必要修改库的时候,克隆源代码就比下载包方便了。你能够接纳--prefer-source来强制选拔克隆源代码。

composer update symfony/yaml --prefer-source 

接下去你能够修改文件:

composer status -v 
You have changes in the following dependencies: 
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
  M Dumper.php

当你盘算更新八个修改过的库的时候,Composer会提示您,询问是不是屏弃修改:

$ composer update
Loading composer repositories with package information 
Updating dependencies 
 - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
  The package has modified files:
  M Dumper.php
  Discard changes [y,n,v,s,?]?
composer update --lock
为生育情况作希图

最后提示一下,在布署代码到生产条件的时候,别忘了优化一下自动加载:

composer dump-autoload --optimize 

安装包的时候能够同样利用--optimize-autoloader。不加这一选项,你大概会意识百分之七十五到十分之二的习性损失。

设若您须要帮助,大概想要精通某些命令的细节,你能够翻阅合罗马尼亚(罗曼ia)语档或者中文文书档案,也得以查阅JoliCode做的那一个交互式备忘单。


原稿地址:5 features to know about Composer
PHP
译文地址:PHP 开拓者该知情的 5 个 Composer
小才具

2. 不编辑composer.json的动静下安装库

你可能感兴趣的篇章:

  • 用 Composer创设本人的 PHP 框架之使用
    ORM
  • 用 Composer营造本身的 PHP 框架之设计
    MVC
  • 用 Composer创设本身的 PHP
    框架之构建路由
  • 用 Composer创设本身的 PHP
    框架之基础绸缪
  • PHPer 须要领会的 5 个 Composer
    小技巧
  • PHP管理正视(dependency)关系工具
    Composer的电动加载(autoload)
  • PHP管理重视(dependency)关系工具 Composer
    安装与利用
  • PHP创立和煦的Composer包方法

您可能会感觉每安装一个库都供给修改composer.json太费事,那么您能够平素利用require命令。

composer require "foo/bar:1.0.0"

其一法子也足以用来飞速地新开多个品类。init命令有–require选项,能够活动编写composer.json:(注意咱们应用-n,那样就无须回答难点)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
  "require": {
    "foo/bar": "1.0.0"
  }
}

3. 派生很轻巧

开始化的时候,你试过create-project命令么?

composer create-project doctrine/orm path 2.2.0

那会活动克隆货仓,并检出钦赐的版本。克隆库的时候用这一个命令很有益于,不须求搜索原始的UTiggoI了。

4. 虚构缓存,dist包优先

近日一年来讲的Composer会自动存档你下载的dist包。默许设置下,dist包用于加了tag的本子,比方”symfony/symfony”:
“v2.1.4″,或然是通配符或版本区间,”2.1.*”或”>=2.2,<2.3-dev”(借使您利用stable作为你的minimum-stability。

dist包也足以用来诸如dev-master之类的分段,Github允许你下载有些git援用的压缩包。为了强制行使压缩包,并不是克隆源代码,你能够应用install和update的–prefer-dist选项。

下边是二个例证(小编动用了–profile选项来显示实施时间):

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s

$ composer install --profile
Loading composer repositories with package information
Installing dependencies
 - Installing twig/twig (v1.12.2)
  Downloading: 100%

Writing lock file
Generating autoload files
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

$ rm -rf vendor

$ composer install --profile
Loading composer repositories with package information
Installing dependencies from lock file
 - Installing twig/twig (v1.12.2)
  Loading from cache

Generating autoload files
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s

此地,twig/twig:1.12.2的削减包被保存在~/.composer/cache/files/twig/twig/1.12.2.0-v1.12.2.zip。重新安装包时直接动用。

5. 思量修改,源代码优先

当您须要修改库的时候,克隆源代码就比下载包方便了。你能够利用–prefer-source来强制接纳克隆源代码。

composer update symfony/yaml --prefer-source

接下去你能够修改文件:

composer status -v
You have changes in the following dependencies:
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
  M Dumper.php

当你图谋更新贰个退换过的库的时候,Composer会提示您,询问是还是不是放弃修改:

$ composer update
Loading composer repositories with package information
Updating dependencies
 - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
  The package has modified files:
  M Dumper.php
  Discard changes [y,n,v,s,?]?

为生育景况作图谋

末段提示一下,在布局代码到生产条件的时候,别忘了优化一下电动加载:

composer dump-autoload --optimize

安装包的时候能够等效使用–optimize-autoloader。不加这一选项,你只怕会开掘百分之二十五到五分之二的习性损失。

即使你需求救助,或然想要精通某些命令的细节,你能够阅读官方文书档案,只怕查看JoliCode做的那些交互式备忘单。

您恐怕感兴趣的篇章:

  • PHP 开采者该知道的 5 个 Composer
    小技能
  • 用 Composer营造本身的 PHP 框架之使用
    ORM
  • 用 Composer营造本人的 PHP 框架之设计
    MVC
  • 用 Composer构建自个儿的 PHP
    框架之创设路由
  • 用 Composer创设本身的 PHP
    框架之基础准备
  • PHP管理正视(dependency)关系工具
    Composer的全自动加载(autoload)
  • PHP管理注重(dependency)关系工具 Composer
    安装与行使
  • PHP创立自身的Composer包方法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有