1. Go to this page and download the library: Download psx/sql 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/ */
psx / sql example snippets
use PSX\Sql\Generator\Generator;
$connection = null; // a doctrine DBAL connection
$target = __DIR__;
$generator = new Generator($connection, 'Acme\\Table');
foreach ($generator->generate() as $className => $source) {
file_put_contents($target . '/' . $className . '.php', '' . "\n\n" . $source);
}
use PSX\Sql\Condition;
use PSX\Sql\OrderBy;
use PSX\Sql\TableManager;
$connection = null; // a doctrine DBAL connection
$tableManager = new TableManager($connection);
/** @var \PSX\Sql\Tests\Generator\SqlTableTestTable $table */
$table = $tableManager->getTable(\PSX\Sql\Tests\Generator\SqlTableTestTable::class);
// returns by default 16 entries from the table ordered by the primary column descending
$table->findAll();
// returns 12 entries starting at index 0
$table->findAll(startIndex: 0, count: 12);
// orders the entries after the column "id" descending
$table->findAll(startIndex: 0, count: 12, sortBy: 'id', sortOrder: OrderBy::DESC);
// returns all rows which match the specified title
$table->findByTitle('foo%');
// returns a row by the primary key
$table->find(1);
// returns the count of entries in the table. It is also possible to provide a condition
$table->getCount();
// creates a new row
$row = new \PSX\Sql\Tests\Generator\SqlTableTestRow();
$row->setTitle('foo');
$table->create($row);
// updates a row
$row = $table->find(1);
$row->setTitle('bar');
$table->update($row);
// deletes a row
$row = $table->find(1);
$table->delete($row);
namespace PSX\Sql\Tests\Generator;
/**
* @extends \PSX\Sql\TableAbstract<\PSX\Sql\Tests\Generator\SqlTableTestRow>
*/
class SqlTableTestTable extends \PSX\Sql\TableAbstract
{
public const NAME = 'psx_sql_table_test';
public const COLUMN_ID = 'id';
public const COLUMN_TITLE = 'title';
public const COLUMN_DATE = 'date';
public function getName() : string
{
return self::NAME;
}
public function getColumns() : array
{
return array(self::COLUMN_ID => 0x3020000a, self::COLUMN_TITLE => 0xa00020, self::COLUMN_DATE => 0x800000);
}
/**
* @return array<\PSX\Sql\Tests\Generator\SqlTableTestRow>
* @throws \PSX\Sql\Exception\QueryException
*/
public function findAll(?\PSX\Sql\Condition $condition = null, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array
{
return $this->doFindAll($condition, $startIndex, $count, $sortBy, $sortOrder);
}
/**
* @return array<\PSX\Sql\Tests\Generator\SqlTableTestRow>
* @throws \PSX\Sql\Exception\QueryException
*/
public function findBy(\PSX\Sql\Condition $condition, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array
{
return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder);
}
/**
* @throws \PSX\Sql\Exception\QueryException
*/
public function findOneBy(\PSX\Sql\Condition $condition) : ?\PSX\Sql\Tests\Generator\SqlTableTestRow
{
return $this->doFindOneBy($condition);
}
/**
* @throws \PSX\Sql\Exception\QueryException
*/
public function find(int $id) : ?\PSX\Sql\Tests\Generator\SqlTableTestRow
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('id', $id);
return $this->doFindOneBy($condition);
}
/**
* @return array<\PSX\Sql\Tests\Generator\SqlTableTestRow>
* @throws \PSX\Sql\Exception\QueryException
*/
public function findById(int $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('id', $value);
return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder);
}
/**
* @throws \PSX\Sql\Exception\QueryException
*/
public function findOneById(int $value) : ?\PSX\Sql\Tests\Generator\SqlTableTestRow
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('id', $value);
return $this->doFindOneBy($condition);
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function updateById(int $value, \PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('id', $value);
return $this->doUpdateBy($condition, $record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function deleteById(int $value) : int
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('id', $value);
return $this->doDeleteBy($condition);
}
/**
* @return array<\PSX\Sql\Tests\Generator\SqlTableTestRow>
* @throws \PSX\Sql\Exception\QueryException
*/
public function findByTitle(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->like('title', $value);
return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder);
}
/**
* @throws \PSX\Sql\Exception\QueryException
*/
public function findOneByTitle(string $value) : ?\PSX\Sql\Tests\Generator\SqlTableTestRow
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->like('title', $value);
return $this->doFindOneBy($condition);
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function updateByTitle(string $value, \PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->like('title', $value);
return $this->doUpdateBy($condition, $record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function deleteByTitle(string $value) : int
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->like('title', $value);
return $this->doDeleteBy($condition);
}
/**
* @return array<\PSX\Sql\Tests\Generator\SqlTableTestRow>
* @throws \PSX\Sql\Exception\QueryException
*/
public function findByDate(\PSX\DateTime\LocalDateTime $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('date', $value);
return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder);
}
/**
* @throws \PSX\Sql\Exception\QueryException
*/
public function findOneByDate(\PSX\DateTime\LocalDateTime $value) : ?\PSX\Sql\Tests\Generator\SqlTableTestRow
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('date', $value);
return $this->doFindOneBy($condition);
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function updateByDate(\PSX\DateTime\LocalDateTime $value, \PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('date', $value);
return $this->doUpdateBy($condition, $record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function deleteByDate(\PSX\DateTime\LocalDateTime $value) : int
{
$condition = \PSX\Sql\Condition::withAnd();
$condition->equals('date', $value);
return $this->doDeleteBy($condition);
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function create(\PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
return $this->doCreate($record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function update(\PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
return $this->doUpdate($record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function updateBy(\PSX\Sql\Condition $condition, \PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
return $this->doUpdateBy($condition, $record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function delete(\PSX\Sql\Tests\Generator\SqlTableTestRow $record) : int
{
return $this->doDelete($record->toRecord());
}
/**
* @throws \PSX\Sql\Exception\ManipulationException
*/
public function deleteBy(\PSX\Sql\Condition $condition) : int
{
return $this->doDeleteBy($condition);
}
/**
* @param array<string, mixed> $row
*/
protected function newRecord(array $row) : \PSX\Sql\Tests\Generator\SqlTableTestRow
{
return \PSX\Sql\Tests\Generator\SqlTableTestRow::from($row);
}
}
namespace PSX\Sql\Tests\Generator;
class SqlTableTestRow implements \JsonSerializable, \PSX\Record\RecordableInterface
{
private ?int $id = null;
private ?string $title = null;
private ?\PSX\DateTime\LocalDateTime $date = null;
public function setId(int $id) : void
{
$this->id = $id;
}
public function getId() : int
{
return $this->id;
}
public function setTitle(string $title) : void
{
$this->title = $title;
}
public function getTitle() : string
{
return $this->title;
}
public function setDate(\PSX\DateTime\LocalDateTime $date) : void
{
$this->date = $date;
}
public function getDate() : \PSX\DateTime\LocalDateTime
{
return $this->date;
}
public function toRecord() : \PSX\Record\RecordInterface
{
$record = new \PSX\Record\Record();
$record->put('id', $this->id);
$record->put('title', $this->title);
$record->put('date', $this->date);
return $record;
}
public function jsonSerialize() : object
{
return (object) $this->toRecord()->getAll();
}
public static function from(array|\ArrayAccess $data) : self
{
$row = new self();
$row->id = $data['id'] ?? null;
$row->title = $data['title'] ?? null;
$row->date = isset($data['date']) ? \PSX\DateTime\LocalDateTime::from($data['date']) : null;
return $row;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.