锂:我如何更改位置连接'和类似的类寻找适配器

时间:2017-05-06 13:27:51

标签: lithium

我一直试图让Connections使用位于app/extensions/data/source/database/adapter/的自定义适配器。我想扩展Connections类并替换

protected static $_adapters = 'data.source';

protected static $_adapters = 'adapter.extension.data.source';

并更改app/config/bootstrap/connections.php顶部使用的连接类以使用app\extensions\data\Connections;  足以让它开始。但是,这只会导致代码仍在尝试使用原始Connections类的错误。

是否有一种简单的方法可以实现这一点,或者我是否必须使用重写的类引用从扩展中的锂/数据重新创建整个类集?

编辑: 事实证明我是以错误的方式解决这个问题。按照Nate Abele的建议,Libraries::path('adapter')告诉我在哪里正确放置MySql.php文件我试图覆盖; - )

1 个答案:

答案 0 :(得分:1)

为了处理命名类(即抽象中的服务)的位置,您需要查看Libraries类,特别是the paths() method,它允许您定义类路径的方式抬起头来。

您还可以查看相关定义,例如locate()$_paths,以了解默认配置的外观。

最后,请注意Connections类是'特殊',因为它根据提供的配置动态定义一个路径:http://li3.me/docs/api/lithium/1.0.x/lithium/data/Connections::_class()

这可以帮助您重新配置类的组织方式,而无需扩展/覆盖任何内容。通常你不需要这样做,除非你需要一些截然不同的行为。