masterflash-ru/ado
Composer 安装命令:
composer require masterflash-ru/ado
包简介
Аналог ADO от Microsoft
关键字:
README 文档
README
установка composer require masterflash-ru/ado
Документация находится в папке doc
Использование алиасов для соединения с базой считаются устаревшими, но для старых сайтов оставлены. Они использует старую конфигурацию подключения к базе из конфига с ключем "db", НЕ ИСПОЛЬЗУЙТЕ ИХ! $connection=$container->get('ADO\Connection'); - возвращает соединение с базой, экземпляр объекта Connection данного пакета. доступны алиасы: ADOConnection ADOdb ADO\Service\Connection
Пакет использует соединение с базой данных из конфигурации приложения (используется абстрактная фабрика):
//абстрактная фабрика ищет в конфиге ключ "databases" "databases"=>[ //соединение с базой + имя драйвера 'DefaultSystemDb' => [ 'driver'=>'MysqlPdo', /*можно сделать соединерние через юникс сокет*/ //"unix_socket"=>"/tmp/mysql.sock", "host"=>"localhost", 'login'=>"root", "password"=>"123456", "database"=>"simba4", "locale"=>"ru_RU", "character"=>"utf8" ], ],
Для работы в фабриках вашего приложения используйте соединение:
$connection=$container->get('DefaultSystemDb');
где DefaultSystemDb - это имя соединения с базой в конфигурационном файле
Практически все методы и св-ва повторяют ADO от Microsoft. Аннотации не используются! Абстракции SQL не используются! Можно получать только некое подобие для более комфортной работы.
Имеются методы для гидратации (генерации массива сущностей) по аналогии с Doctrine и ZF3/Laminas, но есть разница, прежде наполнять сущности, запрос уже выполнен и RS уже заполнен внутри.
для аналога ZF3/Laminas - работает в точно так же как описано в документации ZF, только передается в метод initialize объект RecordSet (запись не поддерживается)
для подобия Doctrine, возвращает сущность/сушности, но аннотации не используются:
создаем RecordSet и наполняем его
$rs=new RecordSet(); $rs->CursorType = adOpenKeyset; $rs->Open("select * from admins",$this->connection); //получаем массив заполненых сущностей, если не указывать объект, то будет возвращет внутренний универсальный $user = $rs->FetchEntityAll(Admins::class); //аналогично, используется внутренний объект-сущность Universal $user = $rs->FetchEntityAll(); //получить один элемент $user = $rs->FetchEntity(Admins::class); для записи данных из сущности в базу: $rs->persist(Объект_сущности);
Заполненый RecordSet можно перебирать циклом foreach, RecordSet стал реализовывать интерфейс Iterator
Вы можете работать в стиле Laminas-Db
Создавать новое подключение не требуется, ADO вернет уже инициализированный объект Adapter:
$connection=$container->get('DefaultSystemDb'); $adapter=$connection->getZfAdapter();
все возможности работы штатного Laminas-Db читайте в документации к нему.
пример работы с абстракциями в стиле Laminas-Db:
use Laminas\Db\Sql\Sql; use Laminas\Db\Sql\Select; //$connection - экземпляр Connection пакета ADO, полученный например, в фабрике $adapter=$connection->getZfAdapter(); $sql = new Sql($adapter); $select = $sql->select(); //вроде фабрики $select->from('admin_menu'); $select->where(['id' => 1]); //выбираем запись для id=1 /*можно сразу создать объект Select из ZF3/Laminas*/ $select = new select(); //аналогично update, delete, insert $select->from('admin_menu'); $select->where(['id' => 1]); //выбираем запись для id=1 //можно дальше как принято в ZF3/Laminas, можно передать объект в RecordSet пакета ADO, или вызвать Execute, который вернет RecordSet $rs=$connection->Execute($select); var_dump($rs->Fields);
Для перехода от Laminas-db к ADO (новое соединение не создается), пока поддерживается только PDO MySql:
//$adapter - инициализированный адаптер в ZF3/Laminas $connection=new Connection($adapter); //или $connection=new Connection(); $connection->setZfAdapter($adapter); //объект Connection автоматически переходит в состояние Open, т.е. готов к использованию //далее стандартная работа в ADO, например, $rs=$connection->Execute("select * from admin_menu"); var_dump($rs->Fields);
masterflash-ru/ado 适用场景与选型建议
masterflash-ru/ado 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 287 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 08 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「ZendFramework」 「ado」 「laminas」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 masterflash-ru/ado 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 masterflash-ru/ado 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 masterflash-ru/ado 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This package provide a Geo modules for yawik.
PSR-11 Aura.DI container configurator for Laminas and Mezzio applications. Drop-in replacement for the archived laminas/laminas-auradi-config with PHP 8.4 and 8.5 support.
MongoDB Adapter to be used with Laminas Paginator
Utils to load, parse and work with configuration on Mezzio projects
A module manager for Zend Framework which can be used to create configs per domain.
ZF2 module for Doctrine 1.x integration
统计信息
- 总下载量: 287
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 15
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2017-08-09