Php Laravel自动加载器:引导过程中的不同行为
在Laravel4.2应用程序中,我有以下类文件Php Laravel自动加载器:引导过程中的不同行为,php,laravel,autoload,Php,Laravel,Autoload,在Laravel4.2应用程序中,我有以下类文件 #File: app/models/Hello.php <?php class Hello { } 但是,如果我尝试在 bootstrap/start.php PHP似乎找不到类文件,我得到以下错误 Fatal error: Class 'Hello' not found in /path/to/laravel/bootstrap/start.php on line 15 Call Stack # Time Memory
#File: app/models/Hello.php
<?php
class Hello
{
}
但是,如果我尝试在
bootstrap/start.php
PHP似乎找不到类文件,我得到以下错误
Fatal error: Class 'Hello' not found in /path/to/laravel/bootstrap/start.php on line 15
Call Stack
# Time Memory Function Location
1 0.0002 241880 {main}( ) ../index.php:0
2 0.1130 1917640 require_once( '/path/to/laravel/bootstrap/start.php' ) ../index.php:35
通常,我认为这是因为所有的自动装弹机还没有安装好。但是,如果我在这两种上下文中查看带有spl\u autoload\u函数的自动加载器,它们包含相同的四个自动加载器(在bootstrap/start.php的末尾调用)
var_dump(spl_autoload_functions());
这让我有点困惑,为什么自动加载可以从我的routes.php文件中工作,而不是在start/bootstrap.php
中。我的假设是其他一些情况会给四个自动加载程序中的一个添加一些状态。我想知道其他情况是什么,或者,如果我不正确,自动加载程序如何在一个位置工作,而不是在另一个位置另一个。虽然拉雷维尔的四个自动加载器已经加载,但拉雷维尔的主自动加载器尚未使用ClassLoader::addDirectories添加任何目录
在bootstrap/start.php
文件中使用类的最佳方法是将该类(或类目录)添加到Composer的classmap
属性,然后使用
$ composer dumpautoload
$ composer dumpautoload