1. Go to this page and download the library: Download alephtools/ddd 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/ */
alephtools / ddd example snippets
/**
* @property string $prop1
* @property-read DateTime $prop2
* @property-write int $prop3
*/
class Data extends StrictDto
{
private $prop1;
private DateTime $prop2;
protected int $prop3 = 0;
public function setProp1(string $value): void
{
$this->prop1 = $value;
}
protected function setProp2(?DateTime $value): void
{
$this->prop2 = $value;
}
public function getProp2(): array
{
return $this->prop2 ?: new DateTime();
}
}
$dto = new Data([
'prop1' => 'abc',
'prop2' => null,
'prop3' => 10,
'prop4' => 1 // causes NonExistentPropertyException for StrictDto but not for WeakDto.
]);
$val1 = $dto->prop1; // abc
$val2 = $dto->prop2; // current time object
$dto->prop3 = 100;
$val3 = $dto->prop3 // throws RuntimeException
$dto->prop4 = 1 // throws NonExistentPropertyException
$dtoAsArray = $dto->toArray(); // you can use toNestedArray() if some properties are DTO themselves.
$dtoAsJson = json_encode($dto); // or use $dto->toJson()
$dtoAsString = (string)$dto // or use $dto->toString()
$row = (new SelectQuery($queryExecutor))
->from('users', 'u')
->where('u.id', '=', 10)
->row();
// $row is a single record (associative array) or empty array.
$rows = (new SelectQuery($queryExecutor))
->from('users')
->select([
'id',
'firstName',
'lastName',
'email'
])
->where('email', 'LIKE', '%gmail.com')
->rows();
// $rows is a record set (array of associative arrays) or empty array.
$rows = (new SelectQuery($queryExecutor))
->from([
'users' => 'u,
'contacts' => 'c'
])
->select([
'u.id' => 'user_id',
'c.id' => 'contact_id'
])
->where('c.user_id = u.id')
->limit(10)
->offset(50)
->rows();
// $rows is a record set (array of associative arrays) or empty array.
$rows = (new SelectQuery($queryExecutor))
->from('users', 'u)
->from('contacts', 'c')
->select('u.id', 'user_id')
->select('c.id', 'contact_id')
->where('c.user_id = u.id')
->rows();
// $rows is a record set (array of associative arrays) or empty array.
$rows = (new SelectQuery($queryExecutor))
->from('users')
->orderBy('email', 'DESC')
->orderBy('id', 'ASC')
->rows();
// $rows is a record set (array of associative arrays) or empty array.
$count = (new SelectQuery($queryExecutor))
->from('users u')
->leftJoin('contacts c', 'c.user_id = u.id')
->where('u.id', '=', 5)
->count('DISTINCT c.name');
// $count is an integer value.
$count = (new SelectQuery($queryExecutor))
->from('users u')
->innerJoin('contacts c', 'c.user_id = u.id')
->select([
'u.id',
'u.email'
])
->select('COUNT(c.id)', 'contact_number')
->groupBy('u.id')
->rows();
// $rows is a record set (array of associative arrays) or empty array.
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.