CakePHP 2.X - загрузка пользовательского класса в app / Lib dir - PullRequest
14 голосов
/ 09 февраля 2012

У меня есть класс под названием MyClass.Он живет в приложении / Lib / MyDir / MyClass.Я хотел бы использовать App: использует (), чтобы загрузить его, но не могу заставить его работать.

В CakePHP 1.3 я бы загрузил его через:

App::import('Lib', 'MyDir/MyClass');  //this still works in CakePHP 2.1

В CakePHP2.1 Я пытаюсь сделать:

App::uses('MyClass', 'Lib/MyDir');

Когда я пытаюсь «создать новый» MyClass, я получаю класс «MyClass» не найден.

Разве невозможно использовать App ::использует на пользовательских классах Lib?Я не могу продолжать использовать App :: import (), потому что если 'App :: import (' Lib ',' MyDir / MyClass ');'появляется 2 раза в пути кода Я получаю ошибку 'Cannot redeclare class' в lib / Cake / Core / App.php в строке 531

что я делаю неправильно?

Редактировать: так что еслиЯ делаю приложение :: использует ('MyClass', 'MyDir');оно работает.Не уверен, что так должно быть, но сообщаю об ошибке.

1 Ответ

20 голосов
/ 09 февраля 2012

Вы пробовали

App::uses('MyClass', 'MyDir');

?поскольку сам «Lib» можно рассматривать как базовый каталог

PS: вы даже должны группировать все внутри Lib в подпапках (пакетах), похожих на ядро.

...