From 11a4b4cb132ad20a0058a897f1c26c95463485b3 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Tue, 23 Jun 2026 06:39:17 +0000 Subject: [PATCH] Docs: move documentation to README Co-authored-by: Felix --- .docs/README.md | 131 ------------------------------------------------ README.md | 130 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 122 insertions(+), 139 deletions(-) delete mode 100644 .docs/README.md diff --git a/.docs/README.md b/.docs/README.md deleted file mode 100644 index f9dc4f1..0000000 --- a/.docs/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# Nextras\ORM Query Objects - -## Content - -- [Usage - how use it](#usage) - - [Simple Query Object](#simple-query-object) - - [Full Query Object](#full-query-object) - - [Executable Query Object](#executable-query-object) - - [Query Object Manager](#query-object-manager) - -## Usage - -### Simple Query Object - -```php -final class SimpleQueryObject extends QueryObject -{ - - public function doQuery(QueryBuilder $builder) - { - return $builder->select('*')->from('foobar'); - } - -} -``` - -```php -$qo = new SimpleQueryObject(); -$qom = $container->getByType(QueryObjectManager::class); -$result = $qom->fetch($qo); -``` - -### Full Query Object - -```php - -final class FullQueryObject extends QueryObject -{ - - public function doQuery(QueryBuilder $builder) - { - return $builder->select('*')->from('foobar'); - } - - protected function postQuery(QueryBuilder $builder) - { - return $builder; - } - -} -``` - -```php -$qo = new FullQueryObject(); -$qom = $container->getByType(QueryObjectManager::class); -$result = $qom->fetch($qo); -``` - -### Executable Query Object - -```php - -final class SimpleExecutableQueryObject extends ExecutableQueryObject -{ - - public function doQuery(QueryBuilder $builder) - { - return $builder->select('*')->from('foobar'); - } - - protected function postResult(Result $result) - { - return $result; - } - -} -``` - -```php -$qo = new SimpleExecutableQueryObject($connection); -$result = $qo->execute(); -``` - -### Query Object Manager - -You can register your own `QueryObjectManager` or setup via extension. - -```neon -extensions: - nextras.queryobjects: Contributte\Nextras\Orm\QueryObject\DI\NextrasQueryObjectExtension -``` - -```php -use Contributte\Nextras\Orm\QueryObject\QueryObjectManager; - -final class MyFacade1 -{ - - /** @var QueryObjectManager **/ - private $qom; - - public function foo() - { - $qo = $this->qom->create(MyExtraQueryObject::class); - $qo->setBar(1); - $qo->setBaz(TRUE); - $result = $this->qom->fetch($qo); - } - -} -``` - -```php -final class MyFacade2 -{ - - /** @var IMyQueryObjectFactory @inject **/ - public $myQueryObjectFactory; - - public function foobar() - { - $qo = $this->myQueryObjectFactory->create(1, TRUE); - $result = $this->qom->fetch($qo); - } - -} -``` - ------ - -Thanks for testing, reporting and contributing. diff --git a/README.md b/README.md index ee5dcb6..ebb19b6 100755 --- a/README.md +++ b/README.md @@ -18,7 +18,16 @@ Website 🚀 contributte.org | Contact 👨🏻‍💻 f3l1x.io | Twitter 🐦 @contributte

-## Usage +Query object helpers for Nextras ORM applications, including reusable query objects, executable query objects and a Nette DI manager. + +## Versions + +| State | Version | Branch | Nette | PHP | +|-------------|---------|----------|-------|---------| +| dev | `^0.7` | `master` | 3.2+ | `>=8.2` | +| stable | `^0.6` | `master` | 3.2+ | `>=8.2` | + +## Installation To install latest version of `contributte/nextras-orm-query-object` use [Composer](https://getcomposer.org). @@ -26,16 +35,121 @@ To install latest version of `contributte/nextras-orm-query-object` use [Compose composer require contributte/nextras-orm-query-object ``` -## Documentation +## Usage -For details on how to use this package, check out our [documentation](.docs). +### Simple Query Object -## Versions +```php +final class SimpleQueryObject extends QueryObject +{ -| State | Version | Branch | Nette | PHP | -|-------------|---------|----------|-------|---------| -| dev | `^0.7` | `master` | 3.2+ | `>=8.2` | -| stable | `^0.6` | `master` | 3.2+ | `>=8.2` | + public function doQuery(QueryBuilder $builder) + { + return $builder->select('*')->from('foobar'); + } + +} +``` + +```php +$qo = new SimpleQueryObject(); +$qom = $container->getByType(QueryObjectManager::class); +$result = $qom->fetch($qo); +``` + +### Full Query Object + +```php +final class FullQueryObject extends QueryObject +{ + + public function doQuery(QueryBuilder $builder) + { + return $builder->select('*')->from('foobar'); + } + + protected function postQuery(QueryBuilder $builder) + { + return $builder; + } + +} +``` + +```php +$qo = new FullQueryObject(); +$qom = $container->getByType(QueryObjectManager::class); +$result = $qom->fetch($qo); +``` + +### Executable Query Object + +```php +final class SimpleExecutableQueryObject extends ExecutableQueryObject +{ + + public function doQuery(QueryBuilder $builder) + { + return $builder->select('*')->from('foobar'); + } + + protected function postResult(Result $result) + { + return $result; + } + +} +``` + +```php +$qo = new SimpleExecutableQueryObject($connection); +$result = $qo->execute(); +``` + +### Query Object Manager + +You can register your own `QueryObjectManager` or set it up via extension. + +```neon +extensions: + nextras.queryobjects: Contributte\Nextras\Orm\QueryObject\DI\NextrasQueryObjectExtension +``` + +```php +use Contributte\Nextras\Orm\QueryObject\QueryObjectManager; + +final class MyFacade1 +{ + + /** @var QueryObjectManager **/ + private $qom; + + public function foo() + { + $qo = $this->qom->create(MyExtraQueryObject::class); + $qo->setBar(1); + $qo->setBaz(TRUE); + $result = $this->qom->fetch($qo); + } + +} +``` + +```php +final class MyFacade2 +{ + + /** @var IMyQueryObjectFactory @inject **/ + public $myQueryObjectFactory; + + public function foobar() + { + $qo = $this->myQueryObjectFactory->create(1, TRUE); + $result = $this->qom->fetch($qo); + } + +} +``` ## Development