Composer自动加载实现

本文介绍如何使用Composer实现类文件的自动加载,包括配置composer.json、生成autoload文件及遵循PSR-4规范。演示了具体实例并展示了如何在项目中正确引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Composer实现自动加载时,Composer会在对应的文件夹里生成一个 vendor文件夹。其中文件夹里面会有一个autoload.php文件,你只需要像平常引用文件一样引入autoload.php,你就可以得到自动加载支持。

这里是没有生成vendor文件夹之前的结构
在命令行中,进入到你composer.json的目录下,然后执行composer dump-autoload命令 当出现了Generating autoload files时,表示执行成功,可以看到对应的文件夹里多了vendor文件夹(前提是您已经装好了composer
可以看到多出了vendor文件夹
只需引用vendor里面的autoload.php文件即可

classes文件夹里有三个类文件,内容分别是:

1.FileSystem.php 文件

<?php
namespace Classes;

class FileSystem
{
    public function upload()
    {
        echo "FileSystem::upload<hr>";
    }
    public function download()
    {
        echo "FileSystem::download<hr>";
    }
}

2.Image.php文件

<?php
namespace classes;

class Image
{
    public function verify()
    {
        echo "Image::verify<hr>";
    }
}

3.Yousql.php文件

<?php
namespace Classes;

class Yousql
{
    public function insert()
    {
        echo "我是Yousql类的insert方法<hr>";
    }

    public  function update()
    {
     echo "我是Yousql类的update方法<hr>";   
    }
}

需要注意的是:要想实现自动载入,您编写的代码需要满足PSR-4规则,若不按规则来,可能会出现意想不到的错误!

4.composer.json文件

{
    "autoload" : {
        "psr-4" : {
            "Classes\\" : "classes/"
        }
    }
}

“classes/” 为所写的类文件的目录

“Classes\” 为对应类里的命名空间(在这里类里面的命名空间可以小写),如果命名空间不对则会出错

$FileSystem = new Classes\FileSystem(); //如果compare.json里面规定的首字母大写,那么在new的时候对应的就应该大写

5.index.php文件

<?php
require_once 'vendor/autoload.php';

$FileSystem = new \Classes\FileSystem();
$FileSystem->download();
$Image = new \Classes\Image();
$Image->verify();
$Yousql = new \Classes\Yousql();
$Yousql->insert();

执行index.php可以看到结果为:
FileSystem::download
Image::verify
我是Yousql类的insert方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值