PHPackages                             masterflash-ru/ado - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. masterflash-ru/ado

ActiveService[Database &amp; ORM](/categories/database)

masterflash-ru/ado
==================

Аналог ADO от Microsoft

2.2.6(3y ago)02873BSD-3-ClausePHPPHP ^7.2 || ^8.0

Since Oct 8Pushed 3y ago1 watchersCompare

[ Source](https://github.com/masterflash-ru/ado)[ Packagist](https://packagist.org/packages/masterflash-ru/ado)[ Docs](https://www.masterflash.ru/)[ RSS](/packages/masterflash-ru-ado/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (2)Versions (27)Used By (3)

Аналог ADONet
=============

[](#аналог-adonet)

установка composer require masterflash-ru/ado

Документация находится в папке doc

Использование алиасов для соединения с базой считаются устаревшими, но для старых сайтов оставлены. Они использует старую конфигурацию подключения к базе из конфига с ключем "db", НЕ ИСПОЛЬЗУЙТЕ ИХ! $connection=$container-&gt;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);
```

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~76 days

Recently: every ~268 days

Total

26

Last Release

1270d ago

Major Versions

1.0.7 → 2.0.02018-12-04

PHP version history (4 changes)1.0.0PHP ^7.0

2.1.0PHP ^7.1

2.2.0PHP ^7.2

2.2.6PHP ^7.2 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/7bc33a135cba93de194077b649f60f0bb234607e9619d5a4cea8addfb3f69b07?d=identicon)[masterflash-ru](/maintainers/masterflash-ru)

---

Top Contributors

[![sxqsxq](https://avatars.githubusercontent.com/u/13969496?v=4)](https://github.com/sxqsxq "sxqsxq (81 commits)")

---

Tags

laminasZendFrameworkado

### Embed Badge

![Health badge](/badges/masterflash-ru-ado/health.svg)

```
[![Health](https://phpackages.com/badges/masterflash-ru-ado/health.svg)](https://phpackages.com/packages/masterflash-ru-ado)
```

###  Alternatives

[laminas/laminas-db

Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations

14023.5M228](/packages/laminas-laminas-db)[doctrine/doctrine-laminas-hydrator

Doctrine hydrators for Laminas applications

373.0M23](/packages/doctrine-doctrine-laminas-hydrator)[samsonasik/error-hero-module

A Hero for your Laminas and Mezzio application to trap php errors &amp; exceptions

5133.6k1](/packages/samsonasik-error-hero-module)[laminas-api-tools/api-tools-doctrine

Laminas API Tools Doctrine module

10666.9k5](/packages/laminas-api-tools-api-tools-doctrine)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
