Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
kwazarmaster
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 19.11.2007

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


Looknij tu : http://www.phpandstuff.com/articles/codeig...stall-and-setup
Kohana jest oparta na CodeIgniter więc instalacja będzie wyglądała tak samo.


--------------------
In googlii non est, ergo non est.
Umiesz liczyć ... licz od zera
- to stwierdzenie rozwiązuje większość problemów z tablicami .



Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W czy Ci nie pasuje domyślny kohanowy ORM? Miałem styczność z Propelem i z Doctrine, ale wkurzało mnie generowanie modeli przy każdej zmianie czy brak możliwości korzystania ze specyficznych typów dla danej bazy danych (np. boolean w PostgreSQL - można użyć inta, ale nie tędy droga).

Dla mnie ORM w Kohanie (2.3.4) jest super. Nie muszę robić nic poza zdefiniowaniem relacji między modelami. Śmiga aż miło.
Go to the top of the page
+Quote Post
kwazarmaster
post
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 19.11.2007

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


Gadasz Panie... Ja używam Codeignitera z Doctrine. Dlaczego? Bo graficznie sobie projektuje baze danych w Workbenchu potem naciskam sobie przycisk i mam model do Doctrine i jest dużo ładniej i przyjemniej niż z wbudowaną biblioteką CodeIgnitera. Warto.


--------------------
In googlii non est, ergo non est.
Umiesz liczyć ... licz od zera
- to stwierdzenie rozwiązuje większość problemów z tablicami .



Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Przypomnę tylko, że wątek dotyczy Kohany, a nie CI. Używałeś ORM w Kohanie? Pewnie nie, dlatego nie wiem na jakiej podstawie go dyskwalifikujesz na rzecz Doctrine. Moim zdaniem kohanowy ORM jest naprawdę niezły, można z nim wiele osiągnąć. Autorowi wątku zależy na ORM walidację danych oraz tworzenie formularzy - tutaj na pewno warto się zainteresować Formo (z racji formularzy). Jest plugin do współpracy z ORM więc nie wiem czy jest sens kombinować z jakimś zewnętrznym rozwiązaniem.
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


W tej chwili jestem w trakcie integracji Kohany i Doctrine (ale wersji 3.0.6 i 2.0-DEV) - jeżeli to co zrobiłem się sprawdzi podeślę Ci "how to"

btw: ORM Kohany (przynajmniej tej z wersji 3) to jakieś nieporozumienie - w każdym bądź razie jako nieporozumienie traktuję ORMa nie potrafiącego wykonać i odpowiednio przetworzyć zapytania z JOINem.
Go to the top of the page
+Quote Post
magnus
post
Post #7





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

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


Ja mam jeden serwis na takim właśnie środowisku (K 2.3.4 + D 1.2). Dość dawno to integrowałem, więc nie pamiętam szczegółów tongue.gif W każdym razie chwilę trzeba było pogooglować. Działa to generalnie dobrze - Doctrine jest jako moduł dołączone do KO i tyle smile.gif


--------------------
Efemental.pl - nasz punkt słyszenia :: recenzje :: tylko metal!
Opensource'owy klon Cantra: http://github.com/magnax/Simtr
Go to the top of the page
+Quote Post
starach
post
Post #8





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

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


~Magnus: Tak tylko gdzie wrzucić dane inicjalizujące. Znalazłem dwa opisy niestety oba nieaktualne/niedziałające http://www.mapledesign.co.uk/projects/kohana-doctrine/ i http://www.devcomments.com/Kohana-and-Doctrine-to93932.htm

~Crozin: Czekam z niecierpliwością.

~kwazarmaster: Nie wygląda tak samo. Niestety.

~phpion: Właściwie jedyne co mi się podoba w ORM Kohany to QueryBuilder, a i to nie do końca.
Go to the top of the page
+Quote Post
magnus
post
Post #9





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 smile.gif Jak ktoś ma pomysły na zrobienie tego lepiej, to chętnie posłucham winksmiley.jpg


--------------------
Efemental.pl - nasz punkt słyszenia :: recenzje :: tylko metal!
Opensource'owy klon Cantra: http://github.com/magnax/Simtr
Go to the top of the page
+Quote Post
starach
post
Post #10





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

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


Dzięki ~magnus ale jakąś chwilę temu udało mi się uruchomić doctrine według opisu z http://www.mapledesign.co.uk/projects/kohana-doctrine/ Nie wiem co wcześniej nie działało musiałem coś pochrzanić. W każdym razie ten opis poskutkował. Na dodatek moduł który trzeba zainstalować jest do ściągnięcia z tej strony.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 01:43