1. Go to this page and download the library: Download lrc-se/anax-repository 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/ */
lrc-se / anax-repository example snippets
// setup
$db = (new \Anax\Database\DatabaseQueryBuilder())->configure('db.php');
$books = new \LRC\Repository\DbRepository($db, 'book', Book::class);
// count entries
echo $books->count();
// retrieve entries
$allBooks = $books->getAll();
$firstBook = $books->getFirst();
$book = $books->find('id', 2);
// update entry
$book->title .= ' (2nd revision)';
$book->published = date('Y');
$books->save($book);
// delete entry
$books->delete($book);
$book2 = $books->find('id', 2);
var_dump($book->id); // null
var_dump($book2); // false (standard "no result" return value from PDO)
// re-insert entry
$books->save($book);
var_dump($book->id); // higher than 2 since the entry was re-inserted, not updated
// use criteria and query options
$filteredBook = $books->getFirst('published < 2000', [], ['order' => 'published DESC']);
$match = 'Tolkien';
$filteredBooks = $books->getAll(
'author LIKE ?',
["%{$match}%"],
[
'order' => 'title',
'limit' => 5,
'offset' => 2
]
);
class Review implements \LRC\Repository\SoftManagedModelInterface
{
use \LRC\Repository\SoftManagedModelTrait;
public function __construct()
{
$this->setReferences([
'book' => [
'attribute' => 'bookId',
'model' => Book::class,
'magic' => true
]
]);
}
/* ... */
}
/* using the managed repositories created above */
// fetch reference on demand
$review = $reviews->find(null, 1); // default primary key
$book = $review->getReference('book'); // explicit resolution
$book2 = $review->book; // magic resolution
var_dump($book); // <Book> model instance
var_dump($book2); // same as $book
// fetch reference on demand, taking soft-deletion into account
// (magic resolution always ignores soft-deletion)
$book3 = $review->getReferenceSoft('book');
// fetch references together with main entity
// (always creates true public attributes, which are skipped when saving the model back)
$review = $reviews->fetchReferences()->find(null, 1);
$book4 = $review->book;
var_dump($book4); // same as $book and $book2, stored in <Review> object
// fetch named references together with main entity,
// taking soft-deletion into account for both
$allReviews = $reviews->fetchReferences(['book'], true)->getAllSoft();
foreach ($allReviews as $review) {
var_dump($review->book); // <Book> model instance stored in <Review> object,
// or null if the reference has been soft-deleted
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.