第一课 初识Composer
1.1 Composer的作用
php开发者众多,且在web开发领域占据绝对统治地位,在20年的发展过程中, 无数开发者开发了无数的类库,但是当你想用某个库时,是怎么做的呢?
比如:我们要做微信开发,我们往往这样做:
1. 打开搜索引擎,搜索微信开发类库.
2. 从不知名的网站,下载源码.(能不能使用)
3. 解压,放到自己项目中,看手册调用.
4. 如果这个微信开发库又要依赖其它的库,又要重复的从事以上的步骤
如上,我们可以看出,php的开发者虽多,类库虽多,但存在以下几个问题.
1. 没有统一的资源仓库,到处乱找
2. 没有统一的安装方式.rar,zip,tar各种包都有.下载后自己得整理.
3. 遇到库的依赖关系,得自己再次下载解决.
可见,php的包虽多,但都是散落在互联网的各个角落,不成系统,且没有统一的规范,那么composer的作用就出来了,有了composer这些库就被组织起来了
1.2 Composer的与类库查找网站的关系
Composer官方网站(中国): http://www.phpcomposer.com/
类库查找网站: https://packagist.org/

1.3 PHP的命令行调用
php 是一种脚本语言,语言通过"PHP 解释器"来解释执行.我们经常在 web 开发中通过浏览器运行 xx.php.其实是 nginx/apache 通知 php 解释器来执行 xx.php.
图示:

我们也可以直接调用 php 解释器,让它来执行xx.php.更通俗的说:命令行方式来调用.
图示:

1.4 Composer的安装方法(自己的安装方法)
1.到官方网站下载这个composer-Setup.exe文件

2.双击运行该安装程序
3.点击Next”,可自愿选择radio按钮下的选项,这里我这选择第一项:“Install Shell Meuns”
4.继续点击”Next”,勾选”Choose a different php.exe from on in you path”,然后点击“Browse”按钮,找到php.exe文件。再点击“Next”按钮。

5.点击Install,进行安装操作。
6. 等待安装

7.打开“运行”窗口,输入“cmd”命令,弹出运行窗口,输入“composer”命令显示如下图即表示安装成功。
注意事项:
在Windows环境下安装Composer,可能会遇到这种安装失败的情况:
出错信息是 "The openssl extension is missing, which will reduce the security and stability of Composer. If possible you should enable it or recompile php with --with-openssl" ,
大意就是你的PHP缺少openssl扩展。
在php的安装目录比如说D:\wamp\bin\php\php5.6\中,找到找个目录下的php.ini文件,然后去掉 extension=php_openssl.dll 这一行开头的注释

注意:因为SSL连接需要认证,所以继续下面的步骤之前,需要准备好CA证书(建议证书保存到php的相关目录中),可以从https://curl.haxx.se/docs/caextract.html处下载。
3、修改php.ini文件中的openssl.cafile


重启Apache服务和MySQL服务。
1.5 配置Composer之修改镜像路线
composer的软件仓库在国外,我们修改为内镜像仓库,提高速度.
- 打开”运行”窗口输入“cmd”命令,打开dos命令窗口
- 输入dos命令:
composer config -g repositories.packagist composer https://packagist.phpcomposer.com
- Dos命令窗口什么都没有提升,表示路线修改成功。
1.6 体验初试composer(一)之创建类操作
- 创建一个composer文件夹,创建完成后。用phpstorm软件打开该文件夹

2.在该文件下创建一个composer.json的文件

3.打开提供的类库管理网址:

4.在“search packages”框内搜索你想要的包,在这里我搜索的是“WeChat”包,并点击打开找到你想要的版本号


5.在composer.json文件下,根据该格式编写你想要下载的类库
{
"require":{
"厂商/类库":"版本说明"
}
}
例子:
{
"require":{
"overtrue/wechat":"4.0.0"
}
}
6.再次打开“运行”窗口并输入“cmd”命令,打开dos窗口

7.输入“composer install”命令,它就会自动执行下载刚才我们所创建的json文件中的类别


8.下载完成后,就会有一个vendor文件夹和其他文件,这个vendor文件夹主要就是做第三方类库存储的用的

这是vendor文件下的文件目录

9.这样就通过composer下载好了的一个类库
1.7 体验初试composer(二)之添加/更新类操作
基于上一章节,我们讲到我们可以通过composer创建下载一个类包,那么是否继续创建一个类包还是添加一个类包。其实我们无需在创建一个composer.json文件,再根据《体验初试composer(一)之创建类包操作》的操作,进行再次添加。这样对我们的操作很不方便。所以,我们无需再次进行创建composer.json文件,只需在原有的composer.json文件中的代码中添加上你想下载的”厂商/报名”:”版本号”即可。然后打开dos命令窗口,输入“composer install”命令,添加结果是添加失败,提示一行警告: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.( 百度翻译结果:警告:锁定文件与Cyr.jSon中的最新更改不一致。你可能会变得过时了。运行更新以更新它们。)。这是什么原因造成的,这是由于咱的composer.lock文件在添加类库时与冲突了,解决方法:1.是删除composer.lock文件;2.输入“composer update”进行更新(在这里我采用的是第二种方法)
{
"require":{
"overtrue/wechat":"4.0.0",
"nettle":"v2.4.3",
"psr/log":"~1.0.1"
}
}



(如上图第二种方法出来的结果)
1.7.1 更新类/库操作
(1) 更新全部类包/库的命令:composer update(谨慎:会主动更新类库文件)
(2) 更新某一项类包/库的命令:composer update foo/bar
(3) 通过通配符匹配包:composer update overtrue/*
注意:包能升级,会受到版本约束,composer当中的所设置的版本约束
1.7.2 通过dos命令添加一个类/库
添加命令:composer require predis/predis=~1.1
注意:假设不指定版本,那么会下载匹配当前php版本的一个最新的sdk版本
1.8 体验初试composer(三)之移除类/库操作
基于上一节课我们知道了,怎样添加和更新类/库的操作,在本章节中我们学习到怎样删除一个类/库
- 通过“cmd”命令打开DOS窗口

2.输入“composer remove 厂商/类名(例子:psr/log)”命令,进行移除操作

1.9 体验初试composer(四)之加载引入类库操作
如果我们通过 composer 引入的上百个类库,这么多的类,如何引入.
难道要手工 require 吗?
composer 仓库中的类,都满足一定的标准(psr-4 标准). Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到完善的自动加载支持.
在这里我们只需引用“require 'vendor/autoload.php';//自动加载类”即可,这样就可以自动加载类,无需手动在进行加载引用。
1.10 体验初试composer(五)之库的版本说明

1.11 创建ThinkPHP5.1框架的项目
学习完上面的章节后,终于来到激动人心的创建TP5.1框架的项目章节,本章节将会带着大家创建一个TP5.1框架的项目
刚才我们是用composer 引入库,库放在了项目的vendor 目录下,供项目引用。
对于项目,我们需要什么效果?
我们需要下载项目源码,放在指定目录下,而不是放在其他项目的vendor 下
执行命令:
composer create-project topthink/think=”版本” “项目路径”
安装项目
composer create-project topthink/think=5.1.*-dev thinkphp5

更快的创建tp5的命令:composer create-project topthink/think=5.1.*-dev thinkphp5 --prefer-dist
如下图,这是通过composer创建的tp5.1框架和文件目录结构图



浙公网安备 33010602011771号