在CakePHP 3.0项目中放置自定义数据库驱动程序类的位置?

时间:2016-03-28 18:28:02

标签: cakephp naming-conventions cakephp-3.0 conventions

我正在使用CakePHP 3.0项目,该项目需要与非常旧版本的SQL Server进行通信,我发现有必要扩展Sqlserver数据库驱动程序类以及SqlserverDialectTrait特性,以便覆盖其中的几个功能。

那部分,我已经运作良好了。我被困在哪里:我在哪里实际将新类文件放在我的项目中,以便我可以在我的数据库配置的“驱动程序”参数中使用它们?

(我在做这类事情时能够找到的所有文档似乎都是指CakePHP 2.0,而不是3.0,但如果有人能指出我忽略的任何内容,我将不胜感激。)

1 个答案:

答案 0 :(得分:1)

理论上,当您通过完全限定名称引用它时,您可以将它们放置在编辑器可以加载它们的任何位置,您可以在数据源配置的driver选项中设置该名称。

为了保持Cake-ish,并且即使没有指定完全限定名称也可以加载驱动程序,但只是一个类名(这在各种其他地方类似,如组件,帮助器,表等),你应该遵循CakePHP核心命名/文件夹模式,即驱动程序进入具有匹配命名空间的src/Database/Driver,即App\Database\Driver,并且方言特征(虽然不受CakePHP类名唯一可加载性东西的影响)将会进入src/Database/Dialect

然后它不仅可以使用像

这样的完全限定名称
'driver' => '\App\Database\Driver\MyCustomDriver'

但也只有classname,比如

'driver' => 'MyCustomDriver'

另见