Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Początki z Doctrine 2
Forum PHP.pl > Forum > Przedszkole
prz3kus
Witam,
niedawno ściągnąłem sobie paczkę doctrine 2, troszkę poczytałem o co z nim biega i 'napaliłem' się na jego obiektowość smile.gif

Pobrałem paczkę pod dla WIN i siedze na środowisku XAMPP

mamy klika pytań, które nie rozumie zaczynając czytań dokumentacje(być może to wina mojego umysłowego translatora na niskim poziomie wink.gif )

Zrobiłem sobie plik

obj - to nazwa mojego projektu

homeTest.php

  1. require '/library/Doctrine/Common/ClassLoader.php';
  2. $classLoader = new \Doctrine\Common\ClassLoader('Doctrine', '/library');
  3. $classLoader->register(); // register on SPL autoload stack
  4.  
  5. use Doctrine\ORM\EntityManager,
  6. Doctrine\ORM\Configuration;
  7.  
  8. // ...
  9.  
  10. if ($applicationMode == "development") {
  11. $cache = new \Doctrine\Common\Cache\ArrayCache;
  12. } else {
  13. $cache = new \Doctrine\Common\Cache\ApcCache;
  14. }
  15.  
  16. $config = new Configuration;
  17. $config->setMetadataCacheImpl($cache);
  18. $driverImpl = $config->newDefaultAnnotationDriver(__DIR__.'/library/obj/Entities'); //tutaj utworzyłem folder gdzie wrzuciłem plik test.php (nie mam pojecia czy poprawnie że go tutaj umieściłem) questionmark.gif co tu podać questionmark.gif
  19. $config->setMetadataDriverImpl($driverImpl);
  20. $config->setQueryCacheImpl($cache);
  21. $config->setProxyDir(__DIR__.'/library/obj/Proxies'); // tutaj utworzyłem kolejny folder z przyczyn że nie wiem po huhu on jest ^^ questionmark.gif co tu podać questionmark.gif
  22. $config->setProxyNamespace('obj\Proxies'); // j.w. questionmark.gif co tu podać questionmark.gif
  23.  
  24. if ($applicationMode == "development") {
  25. $config->setAutoGenerateProxyClasses(true);
  26. } else {
  27. $config->setAutoGenerateProxyClasses(false);
  28. }
  29.  
  30. $connectionOptions = array(
  31. 'dbname' => 'test',
  32. 'user' => 'test',
  33. 'password' => 'test',
  34. 'host' => '192.168.36.9',
  35. 'driver' => 'pdo_mysql',);
  36.  
  37. $em = EntityManager::create($connectionOptions, $config);
  38.  
  39. // nizej to juz moja improwizacja poniweaz nie wiem jak to ugrysc, może bedzie ktoś tak miły i mi wyjasni moich pare niejsasność
  40.  
  41. $cos = $em->find('test', 1);
  42. print_r($cos);


test.php
  1. <?php
  2. /**
  3.  * @Entity
  4.  * @Table(name="test")
  5.  */
  6. class Test
  7. {
  8. //pola i tabelki nazywają się jak zmienne poniżej więc nie jest musowe deklarowanie nazw
  9.  
  10. /** @Column(type="integer") */
  11. private $id;
  12.  
  13. /** @Column(length=20) */
  14. private $test;
  15. }
  16.  
  17. ?>


na koniec jeszcze jedno pytanie czy doctrine nie ma narzędzia do automatycznego generowania(mapowania) class na podstawie tabelek w bazie??

Pozdrawiam
usb2.0
no doctrine na podstawie pliku w twoim przypadku - test.php, moze utworzyc tabelke
dokladnie jak to jest tego nie wiem, ale sprawdz sobie jak dziala to w symfony 2, bo tam wlasnie tak jest to zrobione
magnus
Z tego, co pamiętam z Doctrine 1.x to była taka funkcjonalność. Chyba w obie strony, czyli można sobie wygenerować schema bazy z modeli albo modele z istniejącej bazy (albo i modele i bazę z jakiegoś pliku np. w YAML-u).
Ogólnie dokumentację ma dobrą i ona nie gryzie, więc warto się zapoznać najpierw smile.gif
prz3kus
Wszytko spoko dokumentacja niby jest obszerna ale dla mnie troszkę nie zrozumiała dlatego pytam czego nie rozumiem, odpowiedzi super tylko może ktoś kto już się bawił doctrine 2 wlanie jakimś przykładem albo linkiem smile.gif

Pozdro
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.