Composer快速入门
什么是Composer
Composer是PHP的一个依赖管理工具。你可以在你的项目里声明你依赖的库,然后Composer会帮你解决以下问题:找到这些库以及这些库所依赖的库可以安装的版本,然后进行安装。所以Composer是一个依赖管理工具,而不是一个包管理工具(类似Yum或者Apt),因为它是基于每个项目去管理这些包,把这些包安装到项目里的某个目录。
Composer的安装
Composer要求 PHP 5.3.2+版本以及一些PHP的配置,如果有不兼容的情况发生,在安装过程中会有提示。有两种方式安装Composer,一是本地安装,而是全局安装。
本地安装
本地安装会把Composer安装到当前的目录下。运行以下命令进行安装:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '070854512ef404f16bac87071a6db9fd9721da1684cd4589b1196c3faf71b9a2682e2311b36a5079825e155ac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"$ php composer-setup.php$ php -r "unlink('composer-setup.php');"
一共4条命令,它们分别执行以下的操作:
-
下载安装文件到当前目录。
-
检验安装文件的SHA-384散列。
-
运行安装文件。
-
删除安装文件。
然后我们就可以运行执行以下命令来运行Compoer了:
$ php composer.phar
需要注意的是,第二步检查文件的散列,每一个版本安装文件的散列值都会不同的,所以每次安装最好都到 下载页面去获取安装代码。或者如果你觉得没有检查安装文件的必要的话,也可以跳过这条命令去执行下面的命令。当然从安全角度考虑,不建议这么做。
全局安装
所谓全局安装,其实就是把Composer安装到 PATH变量里的某个目录中,这样你就可以从任何地方去访问Composer了。个人也建议这么做。我们只需要把本地安装的composer执行文件移动到全局目录下即可:
$ mv composer.phar /usr/local/bin/composer
这样你就可以在任何地方直接运行 composer命令了。后续如没有特别说明,都是在全局安装的情况下执行命令。
安装选项
Composer安装时支持3个选项。
--install-dir
通过 --install-dir选项可以修改Composer的安装路径,例如如果我们想把Composer安装在 bin目录下:
$ php composer-setup.php --install-dir=bin
--filename
通过 --filename选项,我们可以修改Composer执行文件的名称(默认为composer.phar)。例如:
$ php composer-setup.php --filename=composer
--version
如果想安装指定版本的Composer,可以使用 --version选项:
$ php composer-setup.php --version=1.0.0-alpha8
手动下载
除了上面的安装方式外,还可以直接下载执行文件,请到 下载页面进行下载。
Composer的更新
更新Composer很简单,只需要执行以下命令:
$ composer selfupdateUpdating to version 1.1.2 (stable channel). Downloading: 100% Use composer self-update --rollback to return to version 06c45623d76457562cecbcf2245f904aa0f63a87# 或者(两者是等效的)$ composer self-update
如果想进行版本的回滚,可以使用以下命令:
$ composer selfupdate --rollbackRolling back to version 2016-05-26_16-11-16-06c4562.
Composer的基本使用
composer.json文件
安装完Composer后,想要在项目里开始使用它,你唯一需要做的就是创建一个 composer.json文件。这个文件描述了你这个项目所依赖的包以及一些其他的元信息。
require键
通过require这个配置项,我们可以指定项目的依赖。假设我们项目需要用到 monolog/monolog这个日志库,那么我们可以这样配置 composer.json文件:
{ "require": { "monolog/monolog": "1.0.*" }}
require的值是一个对象,对象里的每一个键对应一个依赖,通过键名为包的名称,键值为包的版本。
包的名称
包名由vendor名和项目名组成,这样可以保证包名的唯一性。项目名可以重复,但是vendor名每个人都不一样。以 monolog/monolog为例,vendor名和项目名都是 monolog。
包的版本
在上面的例子中,我们要求 monolog/monolog的版本为 1.0.*,表示任何的1.0的开发分支版本都满足要求。版本的指定方式有很多种,在后面的文章中会进行详细的解说。
安装依赖
创建完 composer.json文件并配置好 require后,我们就可以安装依赖了,只需要运行以下的命令:
$ composer installLoading composer repositories with package informationUpdating dependencies (including require-dev) - Installing monolog/monolog (1.0.2) Downloading: 100% Writing lock fileGenerating autoload files
Composer会根据上面配置的版本约定下载最新版本的 monolog/monolog到默认目录 vendor下。
composer.lock文件
运行完上面的 install命令后,你会发现除了 vendor目录,还会多了一个 composer.lock文件。这个文件保存了项目已经安装的每个包的具体版本。在运行 install命令的时候,如果存在这个文件,则Composer会根据这个文件下载对应版本的包。这样的好处是可以保证各个环境的依赖的版本一致,否则如果没有这个文件,每个环境在运行 install时可能下载到的版本就不一致了。所以建议把 composer.lock文件也放到版本控制里。
更新依赖
要更新依赖,只需要运行 update命令:
# 更新所有的依赖$ composer update# 更新某个依赖$ composer update monolog/monolog
自动加载
下载完依赖后,我们可以开始使用依赖所提供的库了。Composer会为下载的库创建自动加载文件 vendor/autoload.php,我们只需要包含这个文件就能轻松的调用各个库的功能。以 monolog/monolog为例:
$log = new Monolog\Logger('name');$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');
我们不用关心库文件的加载问题,Composer的 autoload.php文件已经帮我们处理好了各个库的自动加载。
Packagist 镜像
至此,我们安装好了Composer,也知道了它的基本用法,基本可以快乐的玩耍了。但是众所周知,由于某些原因,github和packagist在国内有时会访问不了,或者速度很慢,这就会导致使用Composer时的各种不爽。还好我们国内有个 镜像可以解决这个问题,只需要把仓库的路径修改为镜像的路径即可。
有两种方式,一是修改Composer的全局配置(推荐的方式):
$ composer config -g repo.packagist composer https://packagist.phpcomposer.com
这个命令会修改Composer的全局配置文件 config.json。二是修改单个项目的配置:
$ composer config repo.packagist composer https://packagist.phpcomposer.com
这个命令会修改项目下的 composer.json文件,添加如下的配置信息:
"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" }}
当然你也可以直接手动修改 composer.json文件,添加上面那段配置信息。
详情请访问: http://pkg.phpcomposer.com/。
参考
-
https://getcomposer.org/
-
http://pkg.phpcomposer.com/

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。
