windows下安装php依赖关系管理工具composer
1、安装Composer
Composer是PHP的依赖管理工具之一,官方网站 http://getcomposer.org/ 。它支持多种安装方式,对于在win下做开发的草来说,最便捷的方式就是下载 Windows 安装包,它会直接帮定义好系统变量,让在任何目录下都可以直接使用 composer 命令。安装包地址点击打开链接。基本是脑下一步即可,期间注意指定正确的 php.exe 文件位置(如下图)。
2、开启 php_openssl 拓展
此步骤需要注意的是,使用集成环境的同学有可能在开启集成环境中 php_openssl 拓展后仍然法正常进行下一步,若在下一步中出现下图提示,那么请手动打开 php 目录下的 php.ini 文件,亲自确认 extension=php_openssl.dll 是否已经开启。
首先,什么叫composer呢?
好吧,直接贴百度百科的吧。http://baike.baidu.com/view/1657652.htm
那么如何在windows下安装composer呢?
windows下执行命令的方式,不如linux下那么方便。所以我们要先设置php环境变量,让php能通过dos去运行。
1.我的电脑(右键)->属性->高级系统设置->高级->环境变量,选中PATH,编辑,在后面追加
;D:\xampp\php
alt+r->cmd打开dos窗口,执行php -v.如果中间报错,提示一系列dll未找到,修改php.ini,
把extension_dir的值,设置为绝对路径,extension_dir ="D:\xampp\php\ext",我中间还有一个browscap.dll未找到的错误提示,找到php.ini中的browscap,将其值也修改为绝对路径的值
如果不出错了。执行php -v,应该得到以下结果:
2.开启ssl扩展
修改php.ini,打开extension = php_openssl.dll
3.进入到php目录,执行php命令。
这里推荐大家通过修改注册表的形式,可以在要进入的文件上右击,直接进入到该文件的cmd命令,而不用每次都执行cd /D D:/xampp/htdocs
新建文件,粘贴一下代码:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\folder\shell\cmd]
@="CMD快速通道"
[HKEY_CLASSES_ROOT\folder\shell\cmd\command]
@="cmd.exe /k cd %1"
保存为xx.reg,运行的时候,点击是,然后找个文件夹,右击下,就会看到有个cmd快速通道的操作项了、
回归正题:进入到项目文件htdocs,在dos中输入
php -r"eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
稍等片刻,会看到以下提示:
4.在你项目文件中,新建一个xx.bat的文件,编辑内容如下:
@ECHO OFF
SET SUBDIR=%~dp0
php %SUBDIR%\composer.phar %*
然后执行一下。这个文件,是要把当前的路径定义成composer、当然,你也可以不执行该文件。
5.到这里,composer就基本安装好了。那么接下来我们要安装扩展包了、
打开htdocs中的composer.json,输入我们要安装的扩展:
格式大致如下:
{
"require": {
"chrisboulton/php-resque": "1.2",
"lisachenko/go-aop-php": "*",
"monolog/monolog":"1.2.*"
}
}
6.如果执行了第四步的文件,直接在htdocs目录下执行composer install
如果未执行第四步的文件,则需要php composer.phar install
好了,安装到这里就完成了,扩展包,也下载好了。htdocs会多出一个vendor的文件夹,打开之后会发现,多出 chrisboulton,lisachenko,monolog三个文件夹。现在来看看自动加载吧……
我们再需要用到扩展包的地方,require_once ROOT_PATH . 'vendor/autoload.php';
然后直接调用扩展包中的类名即可。
示例如下:
<?php require_once ROOT_PATH . 'vendor/autoload.php';//ROOT_PATH是根目录 $redis = Resque::redis();//这里直接调用vendor/chrisboulton/php-resque/lib/resque.php的类名,无需引入该文件 var_dump($redis);
这个redis变量,就是php-resque的一个redis类