Entity Manager (Varlık Yöneticisi) isminden de anlaşılacağı üzeri varlık sınıflarınız üzerinde temel işlemleri gerçekleştirmenizi sağlar. varlık yöneticisi ister controller sınıfınızda isterseniz entity sınıflarınız içersinde kullanın.
Metotlar
bir varlığı veri tabanına kaydetmek duruma göre insert ya da update sözcükleri üretilir
EntityManager::save(Entity $e)
Örnek
$blog = new Blog(); $blog->name="Hello world"; $blog->content="xxxx"; EntityManager::getInstance()->save($blog);
bir varlığı veri tabanınıda aramak için EntityManager’ın find metotdu kullanılır. Bu metodun ilk parametresi aranacak varlık sınıfı ikinci parametersi bu varlığa karşılık gelen birincil anahtar primary key dir.
EntityManager::find(Entity $e,int Id)
Örnek
$em = EntityManager::getInstance(); $blog = $em->find("Blog",2); echo $blog->name; echo $blog->content;
bir varlığı veri tabanınıdan silmek için EntityManager’ın delete metotdu kullanılır.
Entity EntityManager::delete(Entity $e)
Örnek
$em = EntityManager::getInstance(); $blog = $em->find("Blog",2); $em->delete($blog);
FQL sorguları işletmek için EntityManager’ın createQuery metotdu kullanılır. Bu methot string bir parametre alır ve bir Query nesnesi dödürür.
Query nesnesi PDOStatement nesnesinden genişletilmiştir.
FQL le ilerki yazılarda değiniceğim.
Query EntityManager::createQuery(String FQL)
Örnek
$em= EntityManager::getInstance(); $query = $em->createQuery("select b from Blog b where b.id =:id"); $id=11; $query->bindParam("id", $id); $query->execute(); print_r($query->getResultList())
SQL sorguları işletmek için EntityManager’ın nativeQuery metotdu kullanılır. Bu methot string bir parametre alır ve bir Query nesnesi dödürür.
Query nesnesi PDOStatement nesnesinden genişletilmiştir.
Query EntityManager::nativeQuery(String SQL)
Örnek
$em= EntityManager::getInstance(); $query = $em->createQuery("select* from blog"); $query->execute();
Query nesneleri PDOStatement‘i genişletiği için incelemenizi öneririm.
PDO Transaciton ları destekler
beginTransaction();
commit();
rollBack();
Örnek
Varlık sınıfı içinde EntityManager kullanımı
/** * @Table(name ="comment") */ class Comment extends Entity{ /** @Id @Column(name = "id" ,type = "integer") */ private $id; /** @Column(name = "content" ,type = "text") */ private $content; public function set($name, $value) { $this->$name= $value; } public function get($name) { return $this->$name; } function save() { $em = Manager::getInstance(); $em->beginTransaction(); try { $em->save($this); } $em->commit(); } catch (Exception $e) { $em->rollBack(); } } function delete() { $em = Manager::getInstance(); $em->beginTransaction(); try { $em->delete($this); } $em->commit(); } catch (Exception $e) { $em->rollBack(); } }}
Örnek Yukarıdaki Varlık sınıfının kontrolcü içerisinde kullanılması
import("phpf.controllers.facescontroller"); import("dbf.persistence"); import("models.*",true); class Commenttest extends FacesController { public function Commenttest () { parent::FacesController(); $blog = new Comment(); $blog->content="bazı yazılar"; $blog->save(); echo "kayıt tamamdır "; } }













