PHP code example of uestla / yetorm
1. Go to this page and download the library: Download uestla/yetorm library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
uestla / yetorm example snippets
/**
* @property-read int $id
* @property string $name
*/
class Tag extends YetORM\Entity
{}
/**
* @property-read int $id
* @property string $name
* @property string $web
* @property \DateTime $born
*/
class Author extends YetORM\Entity
{}
/**
* @property-read int $id
* @property string $title
* @property string $web
* @property string $slogan
*/
class Book extends YetORM\Entity
{
function getAuthor()
{
return new Author($this->record->ref('author', 'author_id'));
}
function getMaintainer()
{
return new Author($this->record->ref('author', 'maintainer_id'));
}
function getTags()
{
$selection = $this->record->related('book_tag');
return new YetORM\EntityCollection($selection, 'Tag', 'tag');
}
}
// class Author
function getBooksWritten()
{
$selection = $this->record->related('book', 'author_id');
return new YetORM\EntityCollection($selection, 'Book');
}
function getBooksMaintained()
{
$selection = $this->record->related('book', 'maintainer_id');
return new YetORM\EntityCollection($selection, 'Book');
}
/**
* @table book
* @entity Book
*/
class BookRepository extends YetORM\Repository
{}
$books = new BookRepository($connection); // $connection instanceof Nette\Database\Context
foreach ($books->findAll() as $book) { // $book instanceof Book
echo $book->title;
echo $book->getAuthor()->name;
foreach ($book->getTags() as $tag) { // $tag instanceof Tag
echo $tag->name;
}
}
$book = $books->getByID(123); // instanceof Book or NULL if not found
function findByTitle($title)
{
return $this->findBy(array(
'title' => $title,
));
}
$books->findByTitle($title); // without having the method implemented
$book = $books->getByIsbn('<isbn_code>'); // instanceof Book or NULL if not found
/**
* @table book
* @entity Book
* @method YetORM\EntityCollection|Book[] findByTitle(string $title)
* @method Book|NULL getByIsbn(string $isbn)
*/
class BookRepository extends YetORM\Repository
{}
/**
* @property-read int $id
* @property string $title
* @property string $isbn
*/
class Book extends Entity
{}
$book->web = 'http://example.com';
$books->persist($book);