Andy Truong
PHP Developer
A simple introduction to
Andy Truong
9th Feb 2015
TWITTER: thehongtt
<?php
/**
* @Entity
*/
class Person {
/** @Id @Column(type="integer") */
private $id;
/** @Column(type="string") */
private $name;
public function setName($name) { $this->name = $name; }
public function getName() { return $this->name; }
}
<?php
/** @Entity */
class Person {
/** @OneToOne(targetEntity="Position") */
private $position;
}
/** @Entity */
class Position {
/** @Column(type="float") */
private $x;
/** @Column(type="float") */
private $y;
}
<?php
/** @Entity */
class Person {
/** @OneToMany(targetEntity="Address", mappedBy="owner") */
private $addresses;
}
/** @Entity */
class Address {
/** @Column(type="float") */
private $x;
/** @Column(type="float") */
private $y;
/** @ManyToOne(targetEntity="Person", inversedBy="addresses") */
private $owner;
}
<?php
/** @Entity */
class Person {
/**
* @ManyToMany(targetEntity="Country")
* @JoinTable(name="person_nationality")
*/
private $nationalities;
}
/** @Entity */
class Country {
/** @Column(type="string") */
private $name;
}
function demoCreate(EntityManager $em) {
$chi = new Person();
$chi->setName('Chí Văn Phèo');
$em->persit($chi);
$em->flush();
}function demoUpdate(EntityManager $em, Person $chi) {
$chi->setName('Chí Phèo');
$em->persit($chi);
$chi->flush();
}
function demoFind(EntityManager $em) {
// Person or null
$em->find('Person', 1);
$em->findOneBy(['name' => 'Chí Phèo']);
$em->findOneByName('Chí Phèo');
}function demoDelete(EntityManager $em, Person $chi) {
$em->remove($chi);
$em->flush();
}
<?php
$dql = 'SELECT p FROM Person p WHERE p.name = :name';
$query = $em->createQuery($dql);
$query->setParameter('name', 'Chí Phèo');
$ppl = $query->getResult(); // Person[]
/* Select entity fields */
SELECT p.name FROM Person p WHERE p.name = :name
/* Join */
SELECT p, c
FROM Person p JOIN p.country c
WHERE c.name = 'Viet Nam'
/* Sub query */
SELECT p.name FROM Person p WHERE EXISTS (
SELECT phone.phonenumber
FROM Phonenumber phone
WHERE phone.person = p.id
)
By Andy Truong