Laravel 5 防止 'use'

标签 laravel namespaces laravel-5

有没有办法防止对所有事情都使用“使用”。在 Laravel 4 中,我从未使用过“use”,一切都正常。我现在发现我必须包含所有内容,甚至包括“DB”use DB。查找所有这些内容非常令人沮丧且耗时。

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

<?php 
namespace App\Http\Controllers;

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

class HomeController extends Controller {

}
?>

谢谢

最佳答案

并非如此——这是 PHP 5.3+ 的勇敢新命名空间世界。上面的类文件位于 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...
    }
}

关于Laravel 5 防止 'use',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460640/

相关文章:

javascript - 如果 infoWindowContent 中的字段为空,则 Google map 标记不会显示

C# 从 LinQ XDocument 加载数据表

laravel - 登录后出现太多重定向错误

php - 在我删除 softDelete 后,Laravel 仍然希望找到 deleted_at 列

php - Laravel 5:在控制台内核的 Schedule() 函数中使用 Cache::or DB::

php - 如何在 PHP 中调试 "array_key_exists() expects parameter 2 to be array, integer given"?

javascript - 如何从 JSON 响应中读取数据

javascript - 在 Laravel 5 中通过 URL 传递数据集?

.net - 如何说服怀疑的同事了解.Net中的正确 namespace ?

import - Tcl 如何从导入的例程中确定导入器的命名空间