有什么方法可以访问在laravel中实现接口的类?

时间:2019-02-18 08:46:45

标签: php laravel-5.4

在laravel 5.4中,我正在创建一个通知组件。我有三种通知类型(userNotify,orderNotify,otherNotify),所有这些都具有与notifyTitle,notifyContent,notifyImage ...相同的属性,并设置了所有这些属性。

<?php
class NotifyFactory {

    public static function make($type){
        $className = 'App\\Classes\\'.$type.'Notify';

        if( class_exists($className) )
            return new $className();

        throw new \Exception('error');
    }
}
?>

<?php
class BaseNotify implements IBaseNotify {}
>?

<?php
class UserNotify extends BaseNotify {}
>?

<?php
class OrderNotify extends BaseNotify {}
>?

<?php
class OtherNotify extends BaseNotify {}
>?

如果我想使用任何通知类型,请输入:

  

NotifyFactory :: make('OrderNotify');

它调用OrderNotify,我想在面板中设置notifyContent prop的默认内容,我想访问所有实现IBaseNotify的类,但get_declared_classes()函数没有提供Notify类。

我知道我必须在服务提供商中注册该类,但是我不使用依赖注入,所以我不知道如何注册。

我想访问实现了IBaseNotify接口的所有类并设置默认属性。我该怎么办?

0 个答案:

没有答案