2017 © Pedro Peláez
 

service ado

Аналог ADO от Microsoft

image

masterflash-ru/ado

Аналог ADO от Microsoft

  • Sunday, June 10, 2018
  • by masterflash-ru
  • Repository
  • 1 Watchers
  • 1 Stars
  • 80 Installations
  • PHP
  • 9 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 9 Versions
  • 19 % Grown

The README.md

Аналог ADONet

установка composer require masterflash-ru/ado, (*1)

Документация находится в папке doc, (*2)

Использование алиасов для соединения с базой считаются устаревшими, но для старых сайтов оставлены. Они использует старую конфигурацию подключения к базе из конфига с ключем "db", НЕ ИСПОЛЬЗУЙТЕ ИХ! $connection=$container->get('ADO\Connection'); - возвращает соединение с базой, экземпляр объекта Connection данного пакета. доступны алиасы: ADOConnection ADOdb ADO\Service\Connection, (*3)

Пакет использует соединение с базой данных из конфигурации приложения (используется абстрактная фабрика):, (*4)

    //абстрактная фабрика ищет в конфиге ключ "databases"
    "databases"=>[
        //соединение с базой + имя драйвера
        'DefaultSystemDb' => [
            'driver'=>'MysqlPdo',
            /*можно сделать соединерние через юникс сокет*/
            //"unix_socket"=>"/tmp/mysql.sock",
            "host"=>"localhost",
            'login'=>"root",
            "password"=>"123456",
            "database"=>"simba4",
            "locale"=>"ru_RU",
            "character"=>"utf8"
        ],
    ],

Для работы в фабриках вашего приложения используйте соединение:, (*5)

$connection=$container->get('DefaultSystemDb');

где DefaultSystemDb - это имя соединения с базой в конфигурационном файле, (*6)

Практически все методы и св-ва повторяют ADO от Microsoft. Аннотации не используются! Абстракции SQL не используются! Можно получать только некое подобие для более комфортной работы., (*7)

Имеются методы для гидратации (генерации массива сущностей) по аналогии с Doctrine и ZF3/Laminas, но есть разница, прежде наполнять сущности, запрос уже выполнен и RS уже заполнен внутри., (*8)

для аналога ZF3/Laminas - работает в точно так же как описано в документации ZF, только передается в метод initialize объект RecordSet (запись не поддерживается), (*9)

для подобия Doctrine, возвращает сущность/сушности, но аннотации не используются:, (*10)

создаем RecordSet и наполняем его, (*11)

$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, (*12)

Вы можете работать в стиле Laminas-Db, (*13)

Создавать новое подключение не требуется, ADO вернет уже инициализированный объект Adapter:, (*14)

$connection=$container->get('DefaultSystemDb');
$adapter=$connection->getZfAdapter();

все возможности работы штатного Laminas-Db читайте в документации к нему., (*15)

пример работы с абстракциями в стиле Laminas-Db:, (*16)

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:, (*17)

//$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);

The Versions

10/06 2018

dev-master

9999999-dev https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

10/06 2018

1.0.7

1.0.7.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

29/05 2018

1.0.6

1.0.6.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

25/04 2018

1.0.5

1.0.5.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

15/02 2018

1.0.4

1.0.4.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

10/12 2017

1.0.3

1.0.3.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

30/10 2017

1.0.2

1.0.2.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

08/10 2017

1.0.0

1.0.0.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado

08/10 2017

1.0.1

1.0.1.0 https://www.masterflash.ru/

Аналог ADO от Microsoft

  Sources   Download

BSD-3-Clause

The Requires

 

zendframework zf ado