使用Composer实现自动加载时,Composer会在对应的文件夹里生成一个 vendor文件夹。其中文件夹里面会有一个autoload.php
文件,你只需要像平常引用文件一样引入autoload.php
,你就可以得到自动加载支持。
在命令行中,进入到你composer.json的目录下,然后执行composer dump-autoload命令 当出现了Generating autoload files时,表示执行成功,可以看到对应的文件夹里多了vendor文件夹(前提是您已经装好了composer)
只需引用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方法