jinya / pdox
Jinya PDOx 是一个基于 PHP 标准PDO构建的简单对象映射器。
Requires
- php: >=8.1
- ext-pdo: *
- jetbrains/phpstorm-attributes: ^1.0
- laminas/laminas-hydrator: ^4.14.0
Requires (Dev)
- ext-pdo_sqlite: *
- ext-sqlite3: *
- laravel/pint: v1.13.2
- phpstan/phpstan: 1.10.35
- phpunit/phpunit: 10.3.5
- dev-main
- 0.10.1
- 0.10.0
- 0.9.0
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.0
- dev-dependabot-composer-laravel-pint-1.13.8
- dev-dependabot-composer-phpstan-phpstan-1.10.46
- dev-dependabot-composer-phpstan-phpstan-1.10.45
- dev-dependabot-composer-phpstan-phpstan-1.10.44
- dev-dependabot-composer-phpstan-phpstan-1.10.43
- dev-dependabot-composer-phpstan-phpstan-1.10.42
- dev-dependabot-composer-laravel-pint-1.13.6
- dev-dependabot-composer-phpstan-phpstan-1.10.41
- dev-dependabot-composer-laminas-laminas-hydrator-4.15.0
- dev-dependabot-composer-laravel-pint-1.13.5
- dev-dependabot-composer-phpunit-phpunit-10.4.2
- dev-dependabot-composer-laravel-pint-1.13.4
- dev-dependabot-composer-phpstan-phpstan-1.10.39
- dev-dependabot-composer-laravel-pint-1.13.3
- dev-dependabot-composer-phpunit-phpunit-10.4.1
- dev-dependabot-composer-phpstan-phpstan-1.10.38
- dev-dependabot-composer-phpstan-phpstan-1.10.37
- dev-dependabot-composer-phpstan-phpstan-1.10.36
- dev-dependabot-composer-phpunit-php-code-coverage-10.1.6
- dev-dependabot-composer-phpstan-phpstan-1.10.35
- dev-dependabot-composer-phpstan-phpstan-1.10.34
- dev-dependabot-composer-phpunit-php-code-coverage-10.1.5
- dev-dependabot-composer-phpunit-phpunit-10.3.3
- dev-dependabot-composer-phpstan-phpstan-1.10.33
- dev-dependabot-composer-phpunit-php-code-coverage-10.1.4
- dev-dependabot-composer-phpstan-phpstan-1.10.32
- dev-dependabot-composer-phpunit-phpunit-10.2.6
- dev-dependabot-composer-phpstan-phpstan-1.10.26
- dev-dependabot-composer-phpunit-phpunit-9.6.4
- dev-dependabot-composer-phpstan-phpstan-1.10.3
- dev-dependabot-composer-phpstan-phpstan-1.10.2
- dev-dependabot-composer-phpstan-phpstan-1.10.1
- dev-dependabot-composer-phpstan-phpstan-1.9.18
- dev-dependabot-composer-phpunit-phpunit-9.6.3
- dev-dependabot-composer-phpunit-phpunit-9.6.1
- dev-dependabot-composer-phpstan-phpstan-1.9.13
- dev-dependabot-composer-phpstan-phpstan-1.9.12
- dev-dependabot-composer-phpunit-phpunit-9.5.28
- dev-dependabot-composer-phpstan-phpstan-1.9.11
- dev-dependabot-composer-phpstan-phpstan-1.9.6
This package is auto-updated.
Last update: 2024-01-16 01:10:33 UTC
README
永久链接 | 布局 |
---|---|
index.html | 默认 |
PDOx
PDOx 是一个小型PDO扩展,它允许开发人员通过执行单个查询来将表映射到所需的对象。为此,它使用原生PDO或laminas-hydrator。
安装
只需在您的项目中运行 composer require jinya/pdox
。
使用方法
PDOx 除了默认的PDO方法外,还包含三个方法。
$pdo->fetchObject($query, $prototype, $parameters, $strategies)
此方法允许您从查询中检索单个对象并将结果注入到类型为 $prototype
的类中。一个示例调用可能如下所示
<?php use Laminas\Hydrator\Strategy\BooleanStrategy; require_once __DIR__ . '/vendor/autoload.php'; $pdox = new Jinya\PDOx\PDOx('sqlite::memory:'); $result = $pdox->fetchObject('SELECT * FROM table_test WHERE id = ?', new MyObject(), [1], [ 'active' => new BooleanStrategy('1','0'), ]); var_dump($result);
上面的代码非常简单,第一个参数您给它查询,第二个参数是PDOx应该注入到的对象的新实例,第三个是查询的参数,最后是策略。策略是laminas hydrator的组件,您可以在这里了解更多信息。
$pdo->fetchIterator($query, $prototype, $parameters, $strategies)
此方法允许您从查询中检索对象迭代器并将结果注入到类型为 $prototype
的类中。一个示例调用可能如下所示
<?php use Laminas\Hydrator\Strategy\BooleanStrategy; require_once __DIR__ . '/vendor/autoload.php'; $pdox = new Jinya\PDOx\PDOx('sqlite::memory:'); $result = $pdox->fetchIterator('SELECT * FROM table_test WHERE id = ?', new MyObject(), [1], [ 'active' => new BooleanStrategy('1','0'), ]); var_dump($result);
对 fetchIterator
和 fetchObject
的方法调用基本上相同。您只需替换方法名,PDOx 就会为您完成剩余的工作。
$pdo->fetchArray($query, $prototype, $parameters, $strategies)
此方法允许您从查询中检索对象迭代器并将结果注入到类型为 $prototype
的类中。一个示例调用可能如下所示
<?php use Laminas\Hydrator\Strategy\BooleanStrategy; require_once __DIR__ . '/vendor/autoload.php'; $pdox = new Jinya\PDOx\PDOx('sqlite::memory:'); $result = $pdox->fetchArray('SELECT * FROM table_test WHERE id = ?', new MyObject(), [1], [ 'active' => new BooleanStrategy('1','0'), ]); var_dump($result);
对 fetchArray
和 fetchIterator
的方法调用基本上相同。您只需替换方法名,PDOx 就会为您完成剩余的工作。
配置
PDOx 引入了两个新的PDO选项字段。这些是通过构造函数传入的。使用这些新选项,您可以控制PDOx是否应该转换字段名称以及如何处理空结果,通过返回 null
或抛出异常。
PDOx::PDOX_NAMING_UNDERSCORE_TO_CAMELCASE
可能的值: true
或 false
目的:控制是否将数据库中的下划线大小写转换为PHP中的驼峰式大小写
PDOx::PDOX_NO_RESULT_BEHAVIOR
可能的值:PDOx::PDOX_NO_RESULT_BEHAVIOR_NULL
或 PDOx::PDOX_NO_RESULT_BEHAVIOR_EXCEPTION
用途:控制PDOx在fetchObject
中处理无结果的方式
发现了一个错误吗?
如果您发现了一个错误,请随意在Github或我们的Taiga实例上创建一个issue:https://taiga.imanuel.dev/project/pdox/
许可证
像所有其他Jinya项目一样,PDOx在MIT许可证下分发。