Composer是干嘛的,怎么用它。(2) 使用
来源:互联网 发布:淘宝店铺宝贝详情页怎么装修 编辑:程序博客网 时间:2024/05/16 19:57
前言:
我们在前一篇使用详细介绍了composer的下载安装,以及出现的问题和解决方案。这一章着重看composer的具体用法。
主要几点:
- composer贡献的代码网站https://packagist.org/
- 如何下载源码
- 如何管理(跟新,删除)源码
- 如何提交自己的代码贡献给他人
require: "monolog/monolog": "1.11.*@dev"
{ "require": { "monolog/monolog": "1.11.*@dev" }}
你可以看到, require
需要一个 包名称 (例如 monolog/monolog
) 映射到 包版本 (例如 1.11.*@dev
) 的对象。composer install
$ composer install
命令执行完成后,就开始自动下载了,我们打开文件夹:install
命令将会检查锁文件是否存在,如果存在,它将下载conposer.lock指定的版本(忽略 composer.json
文件中的定义)。如果不存在 composer.lock
文件,Composer 将读取 composer.json
并创建锁文件。
我们想想这样有什么作用呢?假设一个场景,多人开发,肯定会有人新的人开发完成将要后续开发,那么他肯定会去更新composer.json的依赖关系,那么其他人更新后,也会同样去更新,这样就乱了。他本来不想去更新,只想用原来的。所以有个这个composer.lock
文件,所有的人都会用一样的依赖关系版本。等全部都开发好了。再将这个composer.lock文件删掉就可以了。
update
命令。这将获取最新匹配的版本(根据你的 composer.json
文件)并将新版本更新进锁文件composer.lockupdate
命令,它将重新生成lock文件$ composer update
如果只想安装或更新一个依赖,你可以这样单独更新它:
$ composer update monolog/monolog [...]
4. 包版本的规则是啥
在前面的例子中,我们引入的 monolog 版本指定为 1.0.*
。这表示任何从 1.0
开始的开发分支,它将会匹配 1.0.0
、1.0.2
或者 1.0.20
。
版本约束可以用几个不同的方法来指定。
1.0.2
你可以指定包的确切版本。范围>=1.0
>=1.0,<2.0
>=1.0,<1.1|>=1.2
通过使用比较操作符可以指定有效的版本范围。 有效的运算符:
>
、>=
、<
、<=
、!=
。 你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号
|
将作为逻辑OR处理。 AND 的优先级高于 OR。通配符
1.0.
你可以使用通配符
来指定一种模式。1.0.*
与>=1.0,<1.1
是等效的。赋值运算符~1.2
这对于遵循语义化版本号的项目非常有用。~1.2
相当于>=1.2,<2.0
。想要了解更多,请阅读下一小节。5. 下一个重要版本(波浪号运算符)
~
最好用例子来解释: ~1.2
相当于 >=1.2,<2.0
,而 ~1.2.3
相当于 >=1.2.3,<1.3
。正如你所看到的这对于遵循 语义化版本号 的项目最有用。一个常见的用法是标记你所依赖的最低版本,像 ~1.2
(允许1.2以上的任何版本,但不包括2.0)。由于理论上直到2.0应该都没有向后兼容性问题,所以效果很好。你还会看到它的另一种用法,使用 ~
指定最低版本,但允许版本号的最后一位数字上升。
默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。
require 'vendor/autoload.php';
我们在对的路径加载这一句就可以了。比如,我们在加载了这一句后,想调用mongolog,我们就可以直接用了,不需要另外加载它:$log = new Monolog\Logger('name');$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');
很方便。 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33Usage: [options] command [arguments]Options: –help -h Display this help message. –quiet -q Do not output any message. –verbose -v Increase verbosity of messages. –version -V Display this application version. –ansi Force ANSI output. –no-ansi Disable ANSI output. –no-interaction -n Do not ask any interactive question. –profile Display timing and memory usage information –working-dir -d If specified, use the given directory as working directory .Available commands: about Short information about Composer archive Create an archive of this composer package config Set config options create-project Create new project from a package into given directory. depends Shows which packages depend on the given package diagnose Diagnoses the system to identify common errors. dump-autoload Dumps the autoloader dumpautoload Dumps the autoloader help Displays help for a command init Creates a basic composer.json file in current directory. install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json. list Lists commands require Adds required packages to your composer.json and installs the m run-script Run the scripts defined in composer.json. search Search for packages self-update Updates composer.phar to the latest version. selfupdate Updates composer.phar to the latest version. show Show information about packages status Show a list of locally modified packages update Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file. validate Validates a composer.json
这里面有很多命令,我们可以一个个的尝试下看看。最常用的就是create-project命令了,我们常见的框架symfony 和 Laravel 框架就是这种方式的:composer create-project laravel/laravel your-project-name 2.1.2
composer create-project symfony/framework-standard-edition your-project-name 2.1.2
8. composer的一些常用的命令:
composer list 列出所有可用的命令composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入composer.lock文件composer search packagename 搜索包,packagename替换为你想查找的包名称composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称composer show packagenamecomposer self-update 更新 composer.phar文件自身composer command --help 以上所有命令都可以添加--help选项查看帮助信息
- Composer是干嘛的,怎么用它。(2) 使用
- Composer是干嘛的,怎么用它。(1) 安装
- awk模式是干嘛的,怎么用
- Maven 是干嘛的?怎么配置?
- ContentProvider是干嘛用的?
- loadView是干嘛用的?
- loadView是干嘛用的?
- checkbox的value值是干嘛用的?如何使用?
- C++中的#和##是干嘛用的
- @override是干嘛的?
- Hadoop是干嘛的
- 程序是干嘛的
- maven是干嘛的?
- log4j是干嘛的
- maven是干嘛的?
- _u32是干嘛的
- composer干嘛这么神经?
- 大学生是干嘛来的?
- Android OpenGL ES 开发教程(16):Viewing和Modeling(MODELVIEW) 变换
- Python: fnmatch模块 (Unix B-Shell通配符的文件名匹配)
- 七技术之Git服务器gitolite的搭建及简单操作
- AsyncHandler
- UC SDK添加之 读别人程序及其写自己的程序感悟
- Composer是干嘛的,怎么用它。(2) 使用
- activity的生命周期
- 十八:微信公众帐号开发-文本消息中使用网页超链接
- c++ 中assert的用法
- 比较实用的Java基本语法
- Metasploit没有db_autopwn命令的解决办法
- UVA1422-Processor(二分法+优先队列)
- J2EE:DAO设计模式
- 【编程珠玑-01章】bitMapSorted