composer总结
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 packagename
composer self-update 更新 composer.phar文件自身
==============================================================================
update报错
[Composer\Exception\NoSslException]
The openssl extension is required for SSL/TLS protection but is not available. If you can not e
nable the openssl extension, you can disable this error, at your own risk, by setting the ‘disa
ble-tls‘ option to true.
执行下面的语句
composer config -g -- disable-tls true
==============================================================================
config (root-only)
查看配置文件
composer config -l -g 或者 composer config --list
下面的这一组选项,仅用于项目。支持以下选项:
process-timeout: 默认为 300。处理进程结束时间,例如:git 克隆的时间。Composer 将放弃超时的任务。如果你的网络缓慢或者正在使用一个巨大的包,你可能要将这个值设置的更高一些。
use-include-path: 默认为 false。如果为 true,Composer autoloader 还将在 PHP include path 中继续查找类文件。
preferred-install: 默认为 auto。它的值可以是 source、dist 或 auto。这个选项允许你设置 Composer 的默认安装方法。
github-protocols: 默认为 ["git", "https", "ssh"]。从 github.com 克隆时使用的协议优先级清单,因此默认情况下将优先使用 git 协议进行克隆。你可以重新排列它们的次序,例如,如果你的网络有代理服务器或 git 协议的效率很低,你就可以提升 https 协议的优先级。
github-oauth: 一个域名和 oauth keys 的列表。 例如:使用 {"github.com": "oauthtoken"} 作为此选项的值, 将使用 oauthtoken 来访问 github 上的私人仓库,并绕过 low IP-based rate 的 API 限制。 关联知识 关于如何获取 GitHub 的 OAuth token。
vendor-dir: 默认为 vendor。通过设置你可以安装依赖到不同的目录。
修改例如:composer config vendor-dir E:/www/kuangjia (注意项目里面配置的优先级更高)bin-dir: 默认为 vendor/bin。如果一个项目包含二进制文件,它们将被连接到这个目录。
cache-dir: unix 下默认为 $home/cache,Windows 下默认为 C:\Users\<user>\AppData\Local\Composer。用于存储 composer 所有的缓存文件。相关信息请查看 COMPOSER_HOME。
cache-files-dir: 默认为 $cache-dir/files。存储包 zip 存档的目录。
cache-repo-dir: 默认为 $cache-dir/repo。存储 composer 类型的 VCS(svn、github、bitbucket) repos 目录。
cache-vcs-dir: 默认为 $cache-dir/vcs。此目录用于存储 VCS 克隆的 git/hg 类型的元数据,并加快安装速度。
cache-files-ttl: 默认为 15552000(6个月)。默认情况下 Composer 缓存的所有数据都将在闲置6个月后被删除,这个选项允许你来调整这个时间,你可以将其设置为0以禁用缓存。
cache-files-maxsize: 默认为 300MiB。Composer 缓存的最大容量,超出后将优先清除旧的缓存数据,直到缓存量低于这个数值。
prepend-autoloader: 默认为 true。如果设置为 false,composer autoloader 将不会附加到现有的自动加载机制中。这有时候用来解决与其它自动加载机制产生的冲突。
autoloader-suffix: 默认为 null。Composer autoloader 的后缀,当设置为空时将会产生一个随机的字符串。
optimize-autoloader Defaults to false. Always optimize when dumping the autoloader.
github-domains: 默认为 ["github.com"]。一个 github mode 下的域名列表。这是用于GitHub的企业设置。
notify-on-install: 默认为 true。Composer 允许资源仓库定义一个用于通知的 URL,以便有人从其上安装资源包时能够得到一个反馈通知。此选项允许你禁用该行为。
discard-changes: 默认为 false,它的值可以是 true、false 或 stash。这个选项允许你设置在非交互模式下,当处理失败的更新时采用的处理方式。true 表示永远放弃更改。"stash" 表示继续尝试。Use this for CI servers or deploy scripts if you tend to have modified vendors.
实例:{
"config": {
"bin-dir": "bin"
}
}
windows下安装composer方法
composer是一个新崛起的PHP的依赖管理工具。官方安装方法见: https://getcomposer.org/doc/00-intro.md#installation-windows 。这里提供不修改PATH环境变量的手动安装方法。
此处假定:
(1)php安装目录为C:/php5.4
(2)php安装目录已经加入PATH环境变量(这样就可以在命令行直接输入“php”而不是“C:/php5.4/php.exe”。PATH环境变量修改方法见:http://blog.chinaunix.net/uid-25810793-id-3257898.html )
(3)composer安装目录为r:/php_phar
———————————–
1、前期工作:php在命令行下所使用的php.ini文件,需要打开php_openssl.dll扩展
可以通过以下命令行,确定php在命令行下所使用的php.ini文件路径:
php –ini
然后通过以下命令,确定是否打开了php_openssl.dll扩展:
php -i | findstr /I /N “openssl”
如果输出字符串有openssl的信息,表示openssl打开成功;否则,请更改php.ini文件,打开php_openssl.dll扩展。
2、通过浏览器下载如下文件到r:/php_phar,文件名为“composer_installer.phar”:
https://getcomposer.org/installer
3、打开cmd命令行,切换到composer安装目录:
cd r:/php_phar
也可以通过我的电脑到达r:/php_phar,然后按住shift后右键,选择“在此处打开命令窗口”
4、输入命令安装:
php composer_installer.phar
5、此时运行“php r:/php_phar/composer.phar -V”,如果显示版本号,表示安装成功。以后可以在其他目录,通过“php r:/php_phar/composer.phar 其他命令行参数”执行composer的其他功能了。
问:我看到官方手册、或者其它教程中,就可以直接在windows命令行下输入“composer xxx”执行啊,怎么做到的?
答:需要增加bat文件和修改PATH环境变量。
1、增加bat文件。
在composer安装目录下增加composer.bat,文件内容为:
@echo off php %~dp0composer.phar %*
这样,就可以通过bat直接运行composer了:
r:/php_phar/composer -V
2、将r:/php_phar加入PATH环境变量,然后重启命令行,就可以达到你的效果了:
问:我不想修改PATH环境变量,又想达到简便输入“composer xxx”(甚至php xxx等等)执行,怎么做?
答:可参阅stackoverflow中给出的两个答案,通过“DOSKEY+注册表”、或“DOSKEY + cmd.exe /K参数”完成这种效果。具体见: http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt 。此处仅介绍DOSKEY + cmd.exe /K参数。
(1)保存如下文字到C:/initcmdenv.cmd:
@echo off
:: Temporary system path(为当前命令行增加额外的PATH,可随意增加不影响全局系统) set PATH=%PATH%;
:: Commands(增加新的快捷命令,必须为DOSKEY 快捷名称=完整命令) DOSKEY composer=php r:/php_phar/composer.phar $*
::Show something(显示初始化的内容,可以删掉)
echo ========DOSKEY==========
DOSKEY /macros
echo ========END==========
(2)新建一个快捷方式。目标位置填入:
%windir%/system32/cmd.exe /K C:/initcmdenv.cmd
(3)愉快地执行composer吧!
composer.json配置
{ "name":"RuoShui PHP", "description":"PHP Framework", "type":"Framework", "keywords":[ "PHP","PHP Framework" ], "require":{ "PHP":">= 5.3.0", "filp/whoops":"*",//错误提示 "symfony/var-dumper":"*",//打印调试 "catfan/medoo":"*",//轻量级的PHP数据库框架 "twig/twig":"*"//模板引擎 },//国内镜像 "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } },//配置全局导入包路径 "config": { "vendor-dir": "E:/www/kuangjia/vendor" } }