Skip to content

Commit 502fa02

Browse files
committed
feat: ActiveQuery PoC
1 parent c20aedb commit 502fa02

2 files changed

Lines changed: 41 additions & 0 deletions

File tree

src/Query/ActiveSelect.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Cycle\ActiveRecord\Query;
6+
7+
use Cycle\ActiveRecord\Facade;
8+
use Cycle\ORM\Select;
9+
10+
/**
11+
* @template TEntity of object
12+
* @extends Select<TEntity>
13+
*/
14+
class ActiveSelect extends Select {
15+
/**
16+
* @param class-string<TEntity> $class
17+
*/
18+
final public function __construct(string $class)
19+
{
20+
parent::__construct(Facade::getOrm(), $class);
21+
}
22+
}

tests/app/Query/MyQueryBuilder.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Cycle\App\Query;
6+
7+
use Cycle\ActiveRecord\Query\ActiveSelect;
8+
9+
class MyQueryBuilder extends ActiveSelect {
10+
public function active($state = true)
11+
{
12+
return $this->where(['active' => $state]);
13+
}
14+
15+
public function orderByCreatedAt($direction = 'ASC')
16+
{
17+
return $this->orderBy(['created_at' => $direction]);
18+
}
19+
}

0 commit comments

Comments
 (0)