Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] Prosty ORM lub poradnik o podpięciu Doctrine
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Poszukuję prostego ORM'a do frameworka Kohana w wersji 2.3.4. Głównie zależy mi na dobrej walidacji danych i ewentualnie jeszcze wsparciu dla formularzy. Próbowałem podpiąć pod niego Doctrine, ale po godzinie prób się poddałem. Jeśli macie jakiś dobry poradnik do tego to też bym nie pogardził.

Dzięki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
magnus
post
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 15.11.2007
Skąd: Nowogród Bobrz.

Ostrzeżenie: (0%)
-----


No więc pokrótce mogę opisać jak to u mnie wygląda.
1. Pliki doctrine wrzucone do foldera /modules/doctrine (w tym folderze są pliki doctrine i doctrine.php oraz foldery 'hooks' i 'vendor' - w tym ostatnim są już właściwe biblioteki - folder Doctrine i plik Doctrine.php).
2. W config.php mam dopisane MODPATH.'doctrine' do $config['modules'] oraz zmienną $config['database_dns'] = 'mysql://.......' czyli parametry połączenia.
3. W modules/doctrine/hooks/doctrine.php jest taka zawartość:
  1. <?php
  2. ini_set('include_path',ini_get('include_path').PATH_SEPARATOR.APPPATH.'models/doctrine'.PATH_SEPARATOR.APPPATH.'models/doctrine/generated');
  3.  
  4. require_once(dirname(__FILE__).'/../vendor/Doctrine.php');
  5.  
  6. $db = Kohana::config('database.default');
  7.  
  8. $conn_string = "{$db['connection']['type']}://{$db['connection']['user']}:{$db['connection']['pass']}@{$db['connection']['host']}/{$db['connection']['database']}";
  9. // Set the autoloader
  10. spl_autoload_register(array('Doctrine', 'autoload'));
  11.  
  12.  
  13. $manager = Doctrine_Manager::getInstance();
  14. $manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);
  15.  
  16. // Load the Doctrine connection
  17. $conn = Doctrine_Manager::connection($conn_string);
  18.  
  19. // Load the models for the autoloader
  20. Doctrine::loadModels(APPPATH . DIRECTORY_SEPARATOR . 'models/doctrine');
  21.  
  22. ... dalej są jeszcze ustawienia profilera Doctrine, ale nie korzystam chwilowo
  23.  

4. W głównym kontrolerze ustanawiam połączenie:
  1. $this->db = Doctrine_Manager::connection(Kohana::config('core.database_dns'));


PS. W punkcie 3. jest zmienna $conn_string, która bierze wartości z config/database.php, ale ja mam tam jakieś domyślne i w niczym to nie przeszkadza (znaczy nie jest to używane).

PPS. Mogłem coś pominąć, no i powyższe rozwiązanie może nie być optymalne... ale działa (IMG:style_emoticons/default/smile.gif) Jak ktoś ma pomysły na zrobienie tego lepiej, to chętnie posłucham (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 02:47