public function testItCanCheckIfEqual() { $sort1 = new Sort(); $sort2 = new Sort(); $sort1->setOrderFor('size', new Order('ASC')); $sort2->setOrderFor('size', new Order('ASC')); $this->assertTrue($sort1->equals($sort2)); $this->assertTrue($sort2->equals($sort1)); }
/** * Pageable constructor. * * @param $pageNumber * @param $pageSize * @param SortInterface|null $sort * @param FilterInterface|null $filter * @param FieldsInterface|null $fields * @param FieldsInterface|null $distinctFields */ public function __construct($pageNumber, $pageSize, SortInterface $sort = null, FilterInterface $filter = null, FieldsInterface $fields = null, FieldsInterface $distinctFields = null) { $this->pageNumber = (int) $pageNumber; $this->pageSize = (int) $pageSize; $this->sort = $sort ? $sort : Sort::null(); $this->filter = $filter ? $filter : Filter::null(); $this->fields = $fields ? $fields : Fields::null(); $this->distinctFields = $distinctFields ? $distinctFields : Fields::null(); }
/** * Page constructor. * * @param array $elements * @param $totalElements * @param $pageNumber * @param $totalPages * @param SortInterface $sort * @param FilterInterface $filter * @param FieldsInterface $fields */ public function __construct(array $elements, $totalElements, $pageNumber, $totalPages, SortInterface $sort = null, FilterInterface $filter = null, FieldsInterface $fields = null) { $this->elements = ImmutableTypedCollection::fromArray(array_values($elements)); $this->totalElements = (int) $totalElements; $this->pageNumber = (int) $pageNumber; $this->totalPages = (int) $totalPages; $this->sort = $sort ? $sort : Sort::null(); $this->filter = $filter ? $filter : Filter::null(); $this->fields = $fields ? $fields : Fields::null(); }
use NilPortugues\Example\AutoGeneratedId\User; use NilPortugues\Example\AutoGeneratedId\UserId; use NilPortugues\Example\AutoGeneratedId\UserMapping; use NilPortugues\Example\AutoGeneratedId\UserRepository; use NilPortugues\Foundation\Domain\Model\Repository\Filter; use NilPortugues\Foundation\Domain\Model\Repository\Order; use NilPortugues\Foundation\Domain\Model\Repository\Sort; include_once __DIR__ . '/../../vendor/autoload.php'; $pdo = new PDO('sqlite::memory:'); $pdo->exec(' CREATE TABLE users ( user_id INTEGER PRIMARY KEY AUTOINCREMENT, username CHAR(255), public_username CHAR(255), email CHAR(255), created_at DATETIME );'); $mapping = new UserMapping(); $repository = new UserRepository($pdo, $mapping); $user = new User(null, 'nilportugues', 'Nil', '*****@*****.**', new DateTime('2016-01-11')); $user = $repository->add($user); $userId = new UserId($user->id()); print_r($repository->find($userId)); echo PHP_EOL; $filter = new Filter(); $filter->must()->beGreaterThanOrEqual('registeredOn.date', '2016-01-01 00:00:00'); $filter->must()->beLessThan('registeredOn.date', '2016-02-01 00:00:00'); $sort = new Sort(); $sort->setOrderFor('registeredOn.date', new Order('ASC')); print_r($repository->findBy($filter, $sort)); echo PHP_EOL;
$table->string('name', 255); $table->integer('id'); $table->primary('id'); $table->timestamps(); }); $model = new UserModel(); $model->name = 'Admin User'; $model->save(); for ($i = 2; $i <= 20; ++$i) { $model = new UserModel(); $model->name = 'Dummy User ' . $i; $model->created_at = (new DateTime())->setDate(2016, rand(1, 12), rand(1, 27)); $model->save(); } } //------------------------------------------------------------------------------------------------------------- // - getUserAction //------------------------------------------------------------------------------------------------------------- $userAdapter = new UserAdapter(); $repository = new UserRepository($userAdapter); $userId = new UserId(1); print_r($repository->find($userId)); //------------------------------------------------------------------------------------------------------------- // - getUsersRegisteredLastMonth //------------------------------------------------------------------------------------------------------------- $filter = new Filter(); $filter->must()->beGreaterThanOrEqual('created_at', '2016-01-01'); $filter->must()->beLessThan('created_at', '2016-02-01'); $sort = new Sort(); $sort->setOrderFor('created_at', new Order('ASC')); print_r($repository->findBy($filter, $sort));