php Composer简介

简单来说,Composer 是一个新的安装包管理工具,服务于 PHP 生态系统。它实际上包含了两个部分:Composer 和 Packagist。下面我们就简单说一下他们各自的用途。

Composer
Composer 是由 Jordi Boggiano 和 Nils Aderman 创造的一个命令行工具,它的使命就是帮你为项目自动安装所依赖的开发包。Composer 中的很多理念都借鉴自 npm 和 Bundler,如果你对这两个工具有所了解的话,就会在 composer 中发现他们的身影。Composer 包含了一个依赖解析器,用来处理开发包之间复杂的依赖关系;另外,它还包含了下载器、安装器等有趣的东西。

作为一个用户,你所要做的就是在 composer.json 文件中声明当前项目所依赖的开发包,然后运行 composer.phar install 就行了。composer.json 文件定义了当前项目所依赖的开发包和 composer 的配置信息。下面是一个小型实例:

{
“require”: {
“monolog/monolog”: “1.2.*”
}
}
Packagist
Packagist 是 Composer 的默认的开发包仓库。你可以将自己的安装包提交到 packagist,将来你在自己的 VCS (源码管理软件,比如 Github)仓库中新建了 tag 或更新了代码,packagist 都会自动构建一个新的开发包。这就是 packagist 目前的运作方式,将来 packagist 将允许直接上传开发包。

对于现代语言而言,包管理器基本上是标配。Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。PHP 的则是 PEAR,不过 PEAR 坑不少:

依赖处理容易出问题
配置非常复杂
难用的命令行接口
好在我们有 Composer,PHP依赖管理的利器。它是开源的,使用起来也很简单,提交自己的包也很容易。

如何安装 Composer

安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。

局部安装

使用命令行下载,打开命令行并依次执行下列命令安装最新版本的 Composer:

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" //下载安装脚本 - composer-setup.php - 到当前目录。
php composer-setup.php //执行安装过程。
php -r "unlink('composer-setup.php');"//删除安装脚本。

使用浏览器或者下载工具下载
直接访问https://install.phpcomposer.com/installer,
比如把下载的installer文件放在了文件夹phpComposer/cc/

cd phpComposer/cc/
php installer

安装完成后会生成最新的composer.phar。

执行第一条命令下载下来的php composer-setup.php 或者 php installer 脚本将简单地检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。
上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!

全局安装

全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

Mac 或 Linux 系统:
打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/ 目录下面:

sudo mv composer.phar /usr/local/bin/composer

Windows 系统:
找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。
将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。
在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。

@php "%~dp0composer.phar" %*

最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。

最后
提示:不要忘了经常执行 composer selfupdate 以保持 Composer 一直是最新版本哦!

关于升级 Composer
Composer 升级时是无法利用我们的镜像加速下载的,而必须连接到 Composer 国外官网的服务器上下载升级文件,某些时候就会导致升级的速度非常慢甚至失败。

这里提供一个简单的办法:

如果你的系统中已经有可以正常使用的 Composer 了,说明系统环境是符合要求的,那么只需要下载新的 Composer 文件并覆盖原来的文件即可。

首先你要确定现有的 Composer 的安装目录,然后通过下面的链接下载 composer.phar 文件(复制以下地址到浏览器地址栏可直接下载),

https://install.phpcomposer.com/composer.phar

将前面下载的 composer.phar 文件覆盖系统中已经安装的 composer.phar 文件即可。注意,有可能在安装时将 composer.phar 改名为 composer 了,注意用同样的名字覆盖即可。

php Composer安装thinkphp

php composer.phar require //生成依赖.composer.json
composer config repo.packagist composer https://packagist.phpcomposer.com//修改镜像的地址为中国镜像
php composer.phar create-project topthink/think tp //安装thinkphp到tp目录
cd tp/public//进入public目录下
php -S localhost:8000//启动php自带的服务器

在浏览器地址栏里输入localhost:8000,会出现以下界面

phpComposer Markdown版本相关推荐

  1. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本

    jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图.另一份 Android 开发学习路线图.可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiao ...

  2. excel导入与导出(markdown版本)

    前段时间要做一个excel表格的上传下载功能,上网找了各种资料及源码,最后借用别人的代码及思路完成了符合自己需求的代码,总结一下excel的上传下载实质是通过第三方的类库比如poi,jxl等对exce ...

  3. Linux sed实战(MarkDown版本)

    文章目录 一.替换 1.全局替换shell中的某个字符. 2.正则匹配空行并删除 3.替换经典案例(正则) 4.时间处理 5.滤出html中href 元素后的网址 6.替换匹配到的字符串 7.忽略大小 ...

  4. Markdown与 $\LaTeX$ 公式的使用入门指南

    文章目录 一.Markdown是什么? 二.Markdown编辑工具 三.Markdown基本语法简介 1.文档结构相关 2.表格 3.图片 4.插入代码 5.添加脚注 6.文档目录 7.与`html ...

  5. html页面嵌入markdown,html – 在R markdown中嵌入图形输出

    我们第一次发布RPub时遇到了同样的问题. Here是已发布的RPub中的代码. 一旦它在RPubs.com上发布而不是在预览中,图表就会显示出来.您可以使用RPub中的"在浏览器中打开&q ...

  6. markdown教程

      版权声明:本文章参考了<小书匠markdown 官方教程>.未经作者允许,严禁用于商业出版,否则追究法律责任.网络转载请注明出处,这是对原创者的起码的尊重!!! 1 基本语法 1.1 ...

  7. cs231n课程资料Python Numpy Tutorial的Python3版本

    cs231n课程资料Python Numpy Tutorial的Python3版本 cs231n课程提供了一个python numpy tutorial的教程,非常不错.之前看过,这些天又想爬虫和数据 ...

  8. Openfire XMPP Smack RTC IM 即时通讯 聊天 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. 600页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)

    这是之前学习推荐系统时的学习资料,非常全面,包含经典模型的解析及代码实现.模型的评估.最新工业界论文解读等等,全网仅此一份!该手册有PDF版本和Markdown版本,总计有600多页! 资料领取方式: ...

最新文章

  1. 学习全基因组测序数据分析2:FASTA和FASTQ
  2. send/recv阻塞和非租塞不同
  3. SSM整合时Maven项目的pom.xml版本兼容的代码备份
  4. hadoop学习之:Map、Reduce详解
  5. 《C++ Primer 5th》笔记(11 / 19):关联容器
  6. linux获取ip地址的接口,获取Linux上接口的IP地址
  7. PHP中Foreach在引用时的陷阱
  8. dta乱码_DTA是自动化索引的出色工具
  9. 单机上搭建Node集群
  10. Es6 filter()、map()、find()方法详解
  11. Gradle删除本地库文件
  12. 单片机ADC分压电阻测量直流电压
  13. 微信抽奖助手网络或服务器错误,微信抽奖助手怎样运用 抽奖助手运用办法
  14. for linux shell 菜鸟_Linux 命令大全 | 菜鸟教程
  15. 家庭影院投影仪哪款值得买?2022年双11家庭影院4K投影仪首选当贝X3 Pro
  16. calico源码分析-ipam(2)
  17. 零基础如何学习单片机,一位入门者的进阶路径,可参考
  18. dedecms联动筛选_织梦联动类别联动筛选搜索查询功能插件
  19. vue使用siwper走马灯
  20. 美格智能5G模组助力电力巡检之无人机产品智能化高效运作

热门文章

  1. G1D13-Apt论文阅读fraudgitKGbookrce33-36php环境搭建
  2. php如何设置虚拟主机,如何让虚拟主机支持php
  3. 手机qq怎么设置不显示定位服务器,微信对方正在输入怎么设置不显示 关闭取消不让好友看教程...
  4. 面试题:深拷贝、浅拷贝、引用拷贝的区别
  5. uniapp微信小程序传参方法和注意事项
  6. 爱奇艺视频自动批量上传软件收录好吗
  7. Layui调用接口使用心得
  8. vivo分屏_在家办公效率低?vivo手机宅家攻略,善用分屏便签和Jovi
  9. 一个女生是怎样在QQ上被男生气死的
  10. 海域、陆地、抢滩登陆、搜光