Composer自动加载实现

来源:互联网 发布:c语言基础书籍推荐 编辑:程序博客网 时间:2024/05/16 16:09

使用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 文件

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

2.Image.php文件

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

3.Yousql.php文件

<?phpnamespace 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文件

<?phprequire_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方法

原创粉丝点击