«

»

Eyl
10

Faces ORM Entity Manager (Varlık Yöneticisi)

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 ";
}
}
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Bir Cevap Yazın

E-Posta adresiniz yayınlanmayacaktır.


*

Bu HTML etiket ve tanımlayıcılarını kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>