第一次和Laravel 5合作。我理解名称空间的使用,以及为什么需要使用它们。我不明白的是,为什么我需要添加use语句,如下所示(在控制器顶部):
use Session;
use Input;
use Response;我必须这样做,这样我才不会有致命的例外,比如:
Class 'App\Http\Controllers\Session' not found也许我错过了什么??这些类似乎是框架的一部分,在L4.x中是默认的。
有人能帮助我理解为什么在L5中会出现这种情况,或者我如何才能避免使用L5这样做呢?
谷歌在这个问题上辜负了我。
发布于 2015-03-12 03:28:26
在文件中使用use语句的过程称为混叠或导入。http://php.net/manual/en/language.namespaces.importing.php给出了一个很好的解释,但简而言之:
Session)引用类,PHP将检查当前命名空间是否存在该类。Session)中另一个类的引用就会发现这一点。Laravel 5控制器在App\Http\Controllers\中具有命名空间。\Session,因为这些类是作为根命名空间的一部分添加的。一个例子是类似于new \App\MyCompany\Models\SomeModel();的use \App\MyCompany\Models\SomeModel as Foo将允许您执行new Foo()并获取\App\MyCompany\Models\SomeModel的实例。(大多数人会删除“as”语句,只需引用new SomeModel())use语句添加到类中。它是一种有用的语言结构,而不是一种限制。希望这是合理的。
https://stackoverflow.com/questions/29001191
复制相似问题