博客列表 >【PHP】Composer 实战

【PHP】Composer 实战

可乐随笔
可乐随笔原创
2023年01月11日 22:19:271410浏览

Composer 实战

  • Composer: PHP项目的包依赖管理工具;

  • 本质:是一个加强版本的自动加载器;

1. 下载与安装

2. 局部安装

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"php composer-setup.phpphp -r "unlink('composer-setup.php');"

3. 全局安装

方法1

下载:https://getcomposer.org/Composer-Setup.exe ,直接安装

方法2

1.找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。2.将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。3.在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。4.复制 `@php "%~dp0composer.phar" %*`5.最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。

4. Composer.json

1.自动创建: `composer init`2.手工创建: `composer.json` , `{}`3.执行`composer install`,不会安装任何包,只是为了创建指定的文件和目录创建这个空的composer.json是为了创建`vendor`目录该目录下,有自动加载器文件,和一个composer的管理目录1. `composer.lock`:composer.json中的包版本锁定文件2. `vendor目录`:第三方包,以及composer 的自动加载器\    1.`autoload.php`:composer的自动加载器    2.`composer目录`:自动加载器的配置项(系统维护)

5. 自动加载器

1.`composer.json`:中添加`autoload`字段,声明依赖包的路径.2.`composer dumpautoload`:将autoload字段声明注册到composer中项目中需要用到的自动加载的文件有那些?1.普通文件:config/database.php2.类文件:xxx.class.php    1.自己的类文件    2.第三方类文件

5.1 加载非 class 文件

1.配置 composer.json内容:

{   "autoload": {    "files": [        "config/database.php",        "lib/common.php"    ]   }}

2.在终端运行: composer dumpautoload ,将autoload字段注册到composer中,注册后,在vendor/composer下面生成 autoload_files.php文件.

5.2 加载class文件

{   "autoload": {    "files": [        "config/database.php",        "lib/common.php"    ],    "classmap":[        "inc/",        "src/Base.php"    ]   }}

composer dumpautoload 后自动生成的文件:vendor/composer/autoload_classes.php,如下:

$vendorDir = dirname(__DIR__);$baseDir = dirname($vendorDir);return array(    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',    'hello\\Test1' => $baseDir . '/inc/class1.php',    'hello\\Test2' => $baseDir . '/inc/class2.php',    'world\\Model' => $baseDir . '/src/Base.php',);

5.3 PSR-4 自动加载规范

  • PSR:(Standard Recommerdations) PHP FIG 组织制定的推荐标准

  • PSR-4 要求

    1. 类空间映射到类的文件路径

    2. 类名与类文件同名

    3. 一个类文件只允许存在一个类

5.4 实战:安装第三方包

5.4.1 安装常规包:catfan/medoo:php数据库框架

composer.json 中添加 require 字段

    "require": {        "catfan/medoo": "^2.1"    }
    # 无composer.lock    composer install    # 有composer.lock    composer update    # 三合一指令    composer require catfan/medoo    # 移除包    composer remove

5.4.2 脚手架

以安装thinkphp为例

# 安装目录架构和源码composer create-project topthink/think# 只安装源码,没有目录架构composer require topthink/framework
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议