这是我的班级图
类的实现如下所示
人类
class Person
{
public $name='person'
public function speak()
{
echo 'person speek'
}
}
Run Code Online (Sandbox Code Playgroud)
学生班
class Student Extends Person
{
public $studentNumber;
public function learn()
{
echo 'learn';
}
}
Run Code Online (Sandbox Code Playgroud)
教授班
class Professor Extends Person
{
public $salary;
public function teach()
{
echo 'teach';
}
}
Run Code Online (Sandbox Code Playgroud)
我想在laravel中实现这些类
mvc模式框架中的控制器如laravel,codeigniter是从基本控制器扩展的,因此在那些框架中不能为每个类创建控制器并从父类继承它们?
这是我遇到的问题
这个想法是当开发人员来到一个框架时,他/她开始根据框架的角度进行编码,并思考如何实现OOD方法论?
好吧,问题是你仍然可以实现你想要实现的目标。在您的app目录中,您可以创建一个目录,将其命名为“classes”(或任何您喜欢的名称)。首先像往常一样创建类(添加适当的名称空间,就像在本例中一样app\Classes),一切都应该没问题。
确保将目录添加到autoloadincomposer.json
"autoload": {
"files": [
"App/Classes/className.php"
]
}
Run Code Online (Sandbox Code Playgroud)
因为它是一个 PHP 类,所以也添加它
"autoload": {
"psr-4": {
"MyApp\\": "app/"
},
},
Run Code Online (Sandbox Code Playgroud)
然后运行composer dump-autoload。现在您可以像往常一样在控制器中使用自定义类(不要忘记use App\Classes\className;)。应该可以做到这一点。