【发布时间】:2013-03-17 17:10:22
【问题描述】:
让我们想象一下,我们正在开发处理 DB 和会话的极其简单的单例身份验证类(我们不想要任何其他分解,如身份验证适配器等)。
如何使这个单例类中的 DI 可用?
当然,最好的方法是将 DI 实例传递给构造函数,但是如果我想从单例中获得它呢?我应该使用静态设置方法Auth::setDi($di) 还是有更好的做法?或者我们应该避免使用单例,因为我们总是有 DI 存储?
对不起我的英语,我希望我的问题很清楚。
【问题讨论】:
让我们想象一下,我们正在开发处理 DB 和会话的极其简单的单例身份验证类(我们不想要任何其他分解,如身份验证适配器等)。
如何使这个单例类中的 DI 可用?
当然,最好的方法是将 DI 实例传递给构造函数,但是如果我想从单例中获得它呢?我应该使用静态设置方法Auth::setDi($di) 还是有更好的做法?或者我们应该避免使用单例,因为我们总是有 DI 存储?
对不起我的英语,我希望我的问题很清楚。
【问题讨论】:
您可以访问静态实例化的最新 DI:
<?php
$di = Phalcon\DI::getDefault();
http://docs.phalconphp.com/en/latest/reference/di.html#accessing-the-di-in-a-static-way
【讨论】: