有没有办法阻止使用'使用'为了一切。在Laravel 4中,我从未使用过'使用'一切正常。我现在发现我必须包括所有内容,甚至包括“DB' use DB
。所有这一切都非常令人沮丧和耗时。
我的问题是,是否有更简单的方法来包含所有内容?
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Customer;
use DB;
class HomeController extends Controller {
}
?>
由于
答案 0 :(得分:2)
不是 - 这是PHP 5.3+的Brave New Namespaced世界。上面的类文件位于App\Http\Controllers
命名空间中,这意味着当您键入类似
$object = new SomeClass;
PHP会假设您的意思是班级App\Http\Controllers\SomeClass
。
您或者,如您所抱,需要使用use
,或,您需要使用完整的类名(带有前导\
)每当你想使用类
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”。