新建一个项目test
在项目目录执行composer init
根据提示执行填写想要的东西
执行composer install
会在项目目录生成一个vendor
目录
打开composer.json文件,加入如下代码:
"autoload": {
"psr-4": {
"Test\\": "src"
}
}
其中Test
是命名空间,src
为源文件目录
做完上面步骤后在项目根目录建一个src
目录 ,
再创建一个IndexController.php
,
namespace Test;
class IndexController
{
public function test()
{
echo 'test';
}
}
再在根目录建一个index.php
,引入vendor
目录中的autoload.php
,
<?php
require 'vendor/autoload.php';
$auth = new Test\IndexController();
$auth->test();
直接执行php index.php
,会发现报错
Fatal error: Uncaught Error: Class 'Test\IndexController' not found in
需要执行composer dump-autoload
自动把类文件做映射
这时打开vender/composer/autoload_psr4.php
会看到
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Test\\' => array($baseDir . '/src'),
);
重新执行php index.php
已经OK了
大家在使用自动加载的时候记得执行composer dump-autoload
,这个经常容易忘。