composer的使用以及安装

在composer的概念中呢,我们已经了解到composer究竟是干什么的,然后也了解到,有了composer之后,对于我们php程序猿,在做些项目的时候极大的提高我们的开发效率,那么composer究竟怎么样去使用呢.

composer是一个php类库管理工具,一听工具,那么肯定需要安装呢,所以下面我们看一下composer如何安装.

composer的安装

怎么样安装呢?不要着急,安装composer呢我们需要准备一些东西.
首先,composer的使用有一定的要求.
1,php的环境变量的配置,需要在cmd命令行中去调用.
2,php的版本要求,需要>=5.5.9,配置好环境变量,在命令行中运行php -v命令就可以查看
3,需要三个扩展 openssl,mbstring,pdo,怎么去开启和编译这三个扩展呢,so easy 打开我们的php目录,找到php.ini文件,在里面搜索如openssl,正常情况是:


~~~~~~~~~~~
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
~~~~~~~~~

前面有个分号,把分号去掉即可

好了,准备工作已经准备好,下面呢我安装composer

window下安装

1,在线安装,不管我们安装什么东西,都需要把它的安装包,给准备好,同样的composer也是这样,我们可以直接去百度搜索composer 进入它的官网,或者国内的镜像中,可能是这样的一个东西:

2.png

直接双击它,一路next就ok了;
但是注意,我们这样安装可能会失败,因为在中间回去composer官网,去下载两个文件,composer.bat,composer.phar但这个网站是国外的,可能会访问失败,那下载不成怎么办呢?

2,离线安装
我们可以去手动的去网上下载好这两个文件,

  1. 按要求打开PHP的相关扩展:openssl.dll , mbstring.dll ,及PDO
  2. 把php.exe所在目录的路径,加入环境变量,保证随处可以cmd下调用php命令.
  3. 把这两个文件给放到 php.exe的同级目录下就ok了

打开命令行中,运行composer -v即可,出现以下界面说明安装成功

3.png

但是并没有完事,因为composer官网是在国外,所以我们下载东西呢,速度会很慢
但是在国内有composer的镜像,我们需要修改成国内的镜像,仅仅是提高下载速度,如下:

composer config -g repositories.packagist composer https://packagist.phpcomposer.com
composer的使用 引入类库

那么我们在之前呢,了解到composer是php类库管理工具,主要是为项目引入类库使用,怎么引入呢?
如:我在做一个blog项目,现在需要用一个smarty组件,首先,我们去http:://packagist.org上去搜索smarty的信息,然后我们需要到blog项目根目录创建一个composer.json的文件,然后把smarty组件的信息,给写入,注意是json格式,如下:

{
    "require":{
        "smarty/smarty":"3.1.30"
    }
}

json文件写好之后,我们需要在cmd中来到项目的额根目录,运行composer install这个命令
会出现以下这种结果

D:\xampp\htdocs\myphp\blog>composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing smarty/smarty (v3.1.30)
Downloading: 100%
Writing lock file
Generating autoload files

完成之后,那么来到项目的文件夹下,多出一个vendor的目录,并且vendor目录下也有一个smarty的文件夹.
在这里可能会有疑问,在json文件中的写个格式是什么意思,以smarty为例,smarty/smarty前面的代表一个公司,后者是代表这个公司开发的这个类库

{
    "require":{
        "厂商/类库名字":"版本号"
    }
}
添加类库

一个项目不可能就需要一个类库,所以如何去添加类库,比如需要一个phpmailer的类库,同样的我们还是需要到http://packagist.org这个网站上,找到phpmailer这个类库的信息和版本
接下来到composer.json文件中去添加信息,如下:

{
    "require":{
        "smarty/smarty":"3.1.30",
        "phpmailer/phpmailer":"5.2.16"
    }
}

然后同样的需要到项目根目录下,执行composer install可能会有以下错误

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json

但是不要着急,我们去读,它的意思呢是json文件中的文件版本较新,而lock文件中的这个类库版本较旧,你可以去执行以下update
我们在次去执行 composer update我们发现回到正常的下载页面,然后在去项目文件加下的vendor目录,发现也多出一个phpmailer的文件夹,说明我们添加类库成功,那么既然有添加类库就有卸载

卸载类库

比如我们需要把没有用到的类库去卸载掉,怎么弄呢,如卸载phpmailer的类库

只需要执行一条命令即可 composer remove phpmailer/phpmailer
成功后,查看你的json文件中的phpmailer的信息没有了,同样的vendor目录下也没有了phpmailer的文件夹,说明已经卸载成功

不配置json文件添加类库

如果我们需要的类库比较多,那么一个一个去composer.json文件中去添加么,不用的
可以执行命令composer require 厂商/类库=版本号

如,引入phpmailer composer require phpmailer/phpmailer="5.2.16"
在去看我们的json文件,多出一条phpmailer的信息,并且vendor目录下,也多出一个phpmailer的文件夹

如何加载引入类库

我们用composer把类库给引入,但是们怎么去调用呢,难道一个个去手动引入么,是不用的,我们注意观察vendor目录下有一个autoload.php这样的一个自动加载文件
我只需要引入这个自动加载的文件,我就可以调用任意你引入的类库,如smarty这个类库

require(__DIR__.'/vendor/autoload.php');

print_r(new Smarty());

创建项目

我们composer是引入类库使用,那么类库供项目使用,能否用composer创建项目呢?

我们知道的有的框架和composer使用,我们用composer创建项目,会直接把框架依赖的类库全部下载下来,省时间,怎么创建呢?以laravel为例
执行命令
composer create-project laravel/laravel=5.1.33
如:

4.png

下载下来之后,到你的项目根目录会发现一个完整的框架,直接可以调用,这就是composer的如何去使用,谢谢大家!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 3,111评论 0 9
  • 安装类库之前一定要先切换成中国镜像,否则会超级久,或是没反应! composer解析: composer.json...
    山有木兮_卿有意阅读 1,214评论 0 2
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 缘起 Composer 是 PHP 的一个包管理和包依赖管理的工具 ( 官方的定义是 "Dependency Ma...
    patiencing阅读 6,383评论 2 3
  • 跑完操玩了一会sc2,补觉到1点,去买了点吃的回来写论文,绪论憋的十分痛苦,下午最后又睡了半小时。晚上回来继续sc...
    AJI米阅读 163评论 0 0