Doctrine і Kohana3

Doctrine

Doctrine — це бібліотека ORM. По MVC-паттерну код генерований за допомогою Doctrine можна дуже класно використовувати замість kohana ORM або кастомних моделей. Доктрина має ряд няшок, якими б хотілось скористуватись:

  • Автоматична генерація моделей. Потім дуже зручно їх міняти, бо створюється спеціально доктриновський клас від якого наслідується вже ваш, який власне і міняємо.
  • Можливість задавати базу і моделі за допомогою yaml, що є дуже зручно і зрозуміло. SQL створення бази генерується, моделі генеруються, всьо добре.
  • Решту няшок просто пронумерую: раз два три.

Скачати.

Kohana 3

Kohana 3, як показує ссилка ось-ось зарелізиться, але проекти не чекають. Щоб йти в ногу з технологіями потрібно приймати ризиковані новаторські рішення. Більше того, по моїм перечитуванням коду реліз кандидату склалось дуже приємне враження, оптимізували і дуже спростили ядро, не втрачаючи необхідного функціоналу звісно. Скачати останню версію.

Процедура

Власне нам потрібно створити модуль kohana, який буде в собі включати доктріну. Відволікатись на таку просту процедуру ми не будемо, в нас doctrine буде лежати в… ну з конфіга буде краще видно я думаю.

Ми виключаємо рідний kohana orm і ActiveRecord і підключаємо натомість doctrine. Далі в папці з модулем доктріни ложимо файлик init.php (вот за що я люблю kohana, тут всьо продумано) з наступним вмістом.

Вроді все прокоментовано. Єдине запитання може виникати до конфігураційного файла бази даних. Вот доречі і він:

Отак отримуємо інтегровану Doctrine в kohana. Опісля, якщо у вас з модулями йдуть моделі доктрини, то в тому ж init.php модуля ставимо наступне:

для модуля блогу наприклад ;)

Бонус

Також викладаю вам спеціально драйвер бібліотеки Auth для використання з doctrine. Розібратись де його поставити зовсім не важко (правда я півдня думав чи його пхати до auth чи до doctrine). Да, ще одне, використовуючи бібліотеку авторизації треба уважно слідкувати за цією сторіночкою.

Код драйвера власне тут. Я думаю резонно його включити в модуль auth, хоча б для того, щоб якщо хтось ще задастся таким питанням, то зможе використати. Да, драйвер ще не тестований, тому можуть бути очевидні завтики, але походу реалізований.

Go back to top