0

我正在使用 Laravel 3(新手)。我有一个用作库的 API 帮助程序类。我想实例化那个类,这样我就可以在我的所有模型中使用它来访问 API。我正在努力弄清楚如何在没有在每个模型中实例化一次的情况下做到这一点。一个例子会很棒。谢谢。

4

2 回答 2

1

有几种方法可以做到这一点,最简单的可能只是创建一个base模型,在其中实例化 API 帮助器类,然后为要访问 API 的所有模型扩展该基本模型。

它可能看起来像:

// base.php
class Base {

    public static function api()
    {
        return new YourApiClass;
    }

}

// user.php
class User extends Base {

    public static function name()
    {
        return parent::api()->callApiMethod();
    }

}

您还可以使用Laravel 3 的 IoC 容器,这可能是更好的选择,具体取决于您在做什么。

于 2013-05-08T16:14:25.043 回答
1

使用 IoC 容器。

实例化你的类:

IoC::register('mailer', function()
{
    $transport = Swift_MailTransport::newInstance();

    return Swift_Mailer::newInstance($transport);
});

然后,当您需要访问您的实例时,您只需:

IoC::instance('mailer', $instance);

参考: http: //laravel.com/docs/ioc

于 2013-05-08T16:26:31.637 回答