本地 / zend-expressive-database
v1.0
2017-08-05 21:07 UTC
Requires
- psr/container: ^1.0
This package is auto-updated.
Last update: 2024-05-17 18:06:19 UTC
README
一个用于轻松统一数据库ORM使用的Zend-Expressive子组件。
当前实现
用法
DatabaseFactoryInterface
此接口应由一个将被Zend Expressive调用来初始化ORM的类实现。
Doctrine示例
<?php use Doctrine\ORM\EntityManager; use Kocal\Expressive\Database\DatabaseFactoryInterface; use Psr\Container\ContainerInterface; class EntityManagerFactory implements DatabaseFactoryInterface { public function __invoke(ContainerInterface $container) { $config = $container->get('config'); // ... return EntityManager::create($foo, $bar); } }
DatabaseRepositoryInterface
此接口应由一个存储库实现。
示例
<?php use \Kocal\Expressive\Database\DatabaseRepository; class PostRepository implements DatabaseRepository { /** * Finds all Entities in the repository. * @return mixed */ public function all() { } /** * Finds the first Entity in the repository. * @return mixed */ public function first() { } /** * Finds the last Entity in the repository. * @return mixed */ public function last() { } /** * Finds an Entity by its ID. * @param mixed $id * @return mixed */ public function find($id) { } /** * Finds all Entities where `$field` value is equal `$value`. * @param string $field * @param mixed $value * @param array|null $orderBy * @return mixed */ public function findByField($field, $value, $orderBy = null) { } /** * Finds all Entities depending on `$criteria`. * @param array $criteria * @param array|null $orderBy * @param int|null $limit * @param int|null $offset * @return mixed */ public function findWhere(array $criteria, $orderBy = null, $limit = null, $offset = null) { } /** * Finds Entities where `$column` is in `$where` array. * @param string $column * @param array $where * @return mixed */ public function findWhereIn($column, array $where) { } /** * Finds Entities where `$column` is not in `$where` array. * @param string $column * @param array $where * @return mixed */ public function findWhereNotIn($column, array $where) { } /** * Save an Entity. * @param object $entity * @return void */ public function save($entity) { } /** * Delete an Entity by its ID or by itself. * @param int|object $idOrEntity * @return void */ public function delete($idOrEntity) { } }