【发布时间】:2016-03-30 19:59:42
【问题描述】:
在我开始使用 Laravel 之后,我在 php 中遇到了一个名为“命名空间”的主题。在尝试理解命名空间时,我发现要在命名空间下扩展一个类,我需要在当前页面中包含该类。像下面这样:
目录'..\teacher\Teacher.php'
namespace Teacher;
class Teacher{
public $headTeacher='mr X';
}
为了扩展我需要包含该页面以及使用命名空间
目录'..\studnet\student.php'
use \Teacher\Teacher; //use the namespace
include('../teacher/Teacher.php'); // include the page
class mathTeacher extends Teacher{
public function headTeacherName(){
echo $this->headTeacher;
}
}
$student=new mathTeacher();
$student->headTeacherName();
我想知道 Laravel 如何只使用命名空间来包含类。就像我创建一个名为“userController”的控制器一样。页面结构是
namespace App\Http\Controllers;
class userController extends Controller{
}
他们从未包含拥有 'controller' 类的 php 页面。但他们能够以某种方式扩展它。我也可以通过使用use View 或use Auth 命令来使用"View" ,"Auth"。它是如何完成的?如何使用我提供的代码实现相同的功能?提前致谢。
【问题讨论】:
-
大多数框架都使用自动加载器。
-
每个请求背后都有一个很大的过程。例如,当您访问 index.php 时,laravel 会加载所有必要的类,以让像您和我这样的人使用它们而无需手动包含它们。如果您想稍微了解一下这种行为,请使用名为“composer”的工具制作您的第一个“hello world”项目
标签: php laravel namespaces