Blogger Information
Blog 94
fans 0
comment 0
visits 92517
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【PHP】Composer 实战
可乐随笔
Original
1405 people have browsed it

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
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post