1. Go to this page and download the library: Download quillstack/orm 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/ */
quillstack / orm example snippets
use Quillstack\Orm\Attributes\{Table, Id, Column, HasMany, HasOne};
use Quillstack\Orm\{Related, Reference};
#[Table('users')]
final class User
{
/**
* @param Related<Post> $posts
* @param Reference<Profile> $profile
*/
public function __construct(
#[Id] public ?int $id = null,
#[Column] public string $email = '',
#[Column] public bool $active = true,
#[HasMany(Post::class, 'user_id')] public readonly Related $posts = new Related(),
#[HasOne(Profile::class, 'user_id')] public readonly Reference $profile = new Reference(),
) {
}
}
$orm = new Orm($connection);
$users = $orm->repository(User::class);
$users->find(7);
$users->findMany([1, 2, 3]); // one query, not three
$users->all();
$users->get($users->query()->where('active', '=', true)->orderBy('email'));
foreach ($orm->repository(User::class)->all() as $user) {
foreach ($user->posts as $post) {
foreach ($post->comments as $comment) {
echo $comment->body;
}
}
}
#[BelongsToMany(Tag::class, table: 'post_tag', foreignKey: 'post_id', relatedKey: 'tag_id')]
public readonly Related $tags = new Related();
$user = $users->save(new User(email: '[email protected]')); // inserted, and given its id
$user->email = '[email protected]';
$users->save($user); // updated
$users->delete($user);
foreach ($rows as $row) {
$orm->persist(new User(email: $row['email']));
}
$orm->flush();