Laravel 5阻止'使用'

时间:2015-04-05 18:19:33

标签: laravel namespaces laravel-5

有没有办法阻止使用'使用'为了一切。在Laravel 4中,我从未使用过'使用'一切正常。我现在发现我必须包括所有内容,甚至包括“DB' use DB。所有这一切都非常令人沮丧和耗时。

我的问题是,是否有更简单的方法来包含所有内容?

<?php 
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Customer;
use DB;

class HomeController extends Controller {

}
?>

由于

2 个答案:

答案 0 :(得分:2)

不是 - 这是PHP 5.3+的Brave New Namespaced世界。上面的类文件位于App\Http\Controllers命名空间中,这意味着当您键入类似

的内容时
$object = new SomeClass;

PHP会假设您的意思是班级App\Http\Controllers\SomeClass

您或者,如您所抱,需要使用use,您需要使用完整的类名(带有前导\)每当你想使用类

时,PHP都知道从全局命名空间开始
class HomeController extends Controller {
    public function someFunction()
    {
        $result = \DB::query(...);  
        $customer = new \App\Models\Customer;
        //etc...
    }
}

答案 1 :(得分:0)

这个问题已经过时但我发现你可以根据Tejas Jasani的教程中的信息做到这一点:http://www.theappguruz.com/blog/upgrading-from-laravel-4-2-to-5-in-web

以下是关键步骤:

1 - 将app / Http / Controllers目录添加到composer.json文件的“autoload”classmap指令中。

"autoload": {
    "classmap": [
        "database",
        "app/Http/Controllers"
    ],

2 - 从抽象app / Http / Controllers / Controller.php基类中删除命名空间。

3 - 在app / Providers / RouteServiceProvider.php文件中,将namespace属性设置为null

protected $namespace = null;

4 - 从命令行运行“composer dump-autoload”。