2016-03-28 5 views
0

Я работаю над проектом CakePHP 3.0, который должен говорить с очень старой версией SQL Server, и я счел необходимым расширить класс драйвера базы данных Sqlserver, а также свойство SqlserverDialectTrait, чтобы переопределить пара функций в нем.Где разместить собственный класс драйвера базы данных в проекте CakePHP 3.0?

Эта часть, я работаю достаточно хорошо. Где я застрял в этом: где я действительно размещаю новые файлы классов в своем проекте, чтобы я мог использовать их в параметре «driver» моей конфигурации базы данных?

(Вся документация, которую я смог найти при выполнении такого рода вещей, кажется, относится к CakePHP 2.0, а не к 3.0, хотя я был бы признателен, если бы кто-нибудь мог указать на все, что я упустил.)

ответ

0

Теоретически вы можете разместить их в любом месте, где композитор может их загрузить, когда вы ссылаетесь на него с полным именем, которое вы можете установить в параметре driver конфигурации вашего источника данных.

Чтобы сохранить вещи Cake-ish и иметь загружаемый драйвер даже без указания полного имени, но просто имя класса (это работает аналогично в других местах, таких как компоненты, помощники, таблицы и т. Д.), Вы должен следовать схеме именования/папки ядра CakePHP, то есть драйверы переходят в src/Database/Driver с подходящим пространством имен, то есть App\Database\Driver, а признак диалекта (хотя это не влияет на загрузку CakePHP, но только для загрузки) будет идти в src/Database/Dialect.

Тогда бы не только работать с полным именем, как

'driver' => '\App\Database\Driver\MyCustomDriver' 

, но и только имя класса, как

'driver' => 'MyCustomDriver' 

Смотрите также

+0

Спасибо. Кажется, что это не работает, когда указывается только имя класса, как описано (т. Е. Мне все равно нужно использовать полное имя в моей конфигурации приложения), но все остальное тикает. Я уверен, что я упускаю из виду что-то тонкое. –

+0

@DavidJProkopetz Несмотря на то, что документально подтверждено, поддержка на нем не была реализована ** https: //github.com/cakephp/cakephp/pull/8566** – ndm

 Смежные вопросы

  • Нет связанных вопросов^_^