如何用扩展该类的类中的另一个方法覆盖类中的方法

时间:2020-10-16 10:39:35

标签: php laravel

我会尽力描述我的问题。

比方说,我有这个类,其中有一个这样的方法:

class Article

...

  protected function getTitle(): string
  {
      return 'This is a title';
  }

然后我有另一个课程,扩展了上一个课程

class CustomArticle extends Article

  protected function getTitle(): string
  {
      return 'This is a custom title';
  }

我有一个数组,其中包含使用

获得的第一类的路径
$classPaths = [Article::class]
然后将该信息存储在数据库中。另一个自定义类位于另一个文件夹(资源文件夹)中。

我以这种方式使班级

$article = new [path retrived from the database];

我想发生的事情是,如果我更改数据库上的路径,则可以设置自定义类,覆盖该方法,同时还可以继承Article类的所有其他内容。我试图在我的数据库上复制ArticleCustom类的路径,但是当我运行该程序时,出现此错误提示

Error : Class [the path to the custom class] not found

我尝试了所有路径:绝对路径,来自内容根目录的路径等等,都使用“ /”和“ \”

是否可能是因为自定义类继承了原始类的名称空间,但实际上不在该文件夹中?我尝试使用Article类的路径,并在其末尾添加“自定义”,但这不起作用

我看过laracast和其他stackoverflow帖子,但找不到答案。

执行此操作的正确方法是什么?尽可能保留我描述的结构。

0 个答案:

没有答案