使用composer构建自己的项目

平时写项目我们都是使用别人的框架,也没有去研究文件的加载过程,这里从头分析下composer构建自动加载的过程及相关问题

流程:

1:安装composer并创建新项目,这里只简单创建了App 文件夹
在这里插入图片描述
2:配置composer.json 文件,需要使用composer 管理项目必须要有composer.json文件,这里只需要注意autoload 模块的 匹配,简单配置如下

{
    "name": "composer test",
    "type": "project",
    "description": "test",

    //需要的依赖
    "require": {
        "php": ">=7.0.0"
    },

    //自动加载规则
    "autoload": {
        "psr-4": {
            //命名空间: 文件路径
            "App\\": "App/"
        }
    }
}

3:运行命令: composer install,成功后会生成一个vendor 文件夹,里面有自动加载相关的文件
在这里插入图片描述
4:使用
a>: 在App 文件夹 创建Test 类,这个命名空间必须按照上面composer.json 约定的路径方式命名

<?php
/**
 * Created by PhpStorm.
 * User: 05
 * Date: 2021/5/6
 * Time: 10:40
 */
namespace App;
class Test{

    public function test(){
        echo "test";
    }
}

b>: 在index.php 加载使用文件

<?php
/**
 * Created by PhpStorm.
 * User: 05
 * Date: 2021/5/6
 * Time: 10:43
 */

//引入composer 生成的自动加载文件
require_once dirname(__FILE__)."/vendor/autoload.php";
//声明使用的类
use App\Test;
$test=new Test();
$test->test();

相关问题:

1:项目中新增文件夹,添加的类库为什么不能引用?

a:如果新的文件夹在已有的文件夹内,且符合psr-4的规范 是可以直接引用的,但是如果文件夹新增在最外层或者命名空间不是psr-4规范 则需要在composer.json 里对应配置自动加载规则后运行composer dump-autoload 命令更新加载文件加载匹配文件,如下图类 T 是可以直接使用的
在这里插入图片描述
2:我在 vendor 内新建文件夹创建的类 为什么不能引用?

A>: vendor 内的文夹默认为composer 自动引用的依赖库文件夹,一般是不能手动添加的,如果一定要手动添加,那在添加后需要手动修改 autoload_static.php(php>=5.6) 或者 autoload_psr4.php (有些框架会自己实现自动加载需要查看具体实现)文件里自动加载的匹配路径,这里一般是composer requer 后自动更新的,手动操作后下次composer 自动更新配置后会被覆盖
下面是tp某框架的自动加载,全程不会加载autoload_static.php
在这里插入图片描述

3:composer 构建流程

a:按照json 配置的 require配置 加载文件的依赖库,加载依赖时也会先加载对应的compose.json 文件 去检测它的require 依赖,直到把所需的依赖全部下载下来(在vendor内)

b:按照json autoload 配置生成(或者更新) autoload 相关配置文件

c: 项目引入autoload 文件实现自动加载

PS:composer常用命令

composer install;  #安装包,根据composer.json
composer update;   #更新包,升级composer.json的所有代码库(如果能升级的话)
composer search 关键字; #搜索包,搜索composer可用的包
composer require 包名称; #引入包,会在composer.json新增一条包配置,并下载该代码包 
composer remove 包名称; #删除包
composer dump-autoload;#生成当前命名空间与类库文件路径的一个映射,运行时加载会直接读取这个映射,加快文件的加载速度。

最后:如何构建自动composer 依赖库?
请看:构建自己的composer依赖包

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值