Download the PHP package zfstarter/zfs-domain-model without Composer
On this page you can find all versions of the php package zfstarter/zfs-domain-model. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download zfstarter/zfs-domain-model
More information about zfstarter/zfs-domain-model
Files in zfstarter/zfs-domain-model
Package zfs-domain-model
Short Description Alternative DBAL implementation of Zend Framework 2 Zend\Db for ZFStarter
License MIT
Informations about the package zfs-domain-model
zfs-domain-model
Альтернативная реализация слоя доступа к реляционным БД на основе Zend\Db для ZF2/ZFStarter проектов.
Подключение
-
Добавляем в конфиг фабрику сервиса автоматического создания Gateway'ев:
- Добавляем алиас на дефолтное подключение к БД:
Использование
Единственное необходимые действия:
-
Создать абстрактную фабрику для создания Gateway'ев:
- И добавить эту фабрику в настройки ServiceManager'а:
Теперь мы можем получить доступ к Gateway через сервис локатор (на примере контроллера):
Библиотека создала ZFS\DomainModel\Gateway\TableGateway, подключенный к таблице 'users', использующую ZFS\DomainModel\ResultSet\ResultSet как прототип результата операции select и ZFS\DomainModel\Object\ObjectMagic как прототип абстракции строчки таблицы. Последний содержит магические __get и __set для доступа к данным строчки.
Расширенное использование
Абстрактная фабрика для каждого Gateway может определить множество опций, определенных в ZFS\DomainModel\Service\Options:
Каждый класс должен наследоваться от соответствующего класса из ZFS\DomainModel
OPTION_OBJECT_PROTOTYPE должен как минимум реализовывать ZFS\DomainModel\Object\ObjectInterface.
Помимо интерфейса, в распоряжении программиста есть ZFS\DomainModel\Object\Object и ZFS\DomainModel\Object\ObjectMagic. Первый будет полезен для любителей писать геттеры и сеттеры через методы:
Второй более минималистичен. Испольузет __get и __set для доступа к полям, внутри которых используется $this->get() (из примера выше) и $this->set():
PHPDoc @property желательно использовать как минимум для автокомплита.
В помощь camelCase стилю программирования и underscore именования колонок в БД можно использовать параметр $fieldToColumnMap:
Отсеять лишние поля в массиве $data (полезно для ObjectMagic), которых нет в исходной таблице, можно использовать ZFS\DomainModel\Feature\FilterColumnsFeature, просто добавить ее в описание Gateway:
Здесь, как видно, ключи опций используются из Options, определение перенесено в конструктор из-за необходимости создать инстанс FilterColumnsFeature и используется Application\Model\Object\User из примера выше.
Лицензия
MIT
All versions of zfs-domain-model with dependencies
zendframework/zend-db Version 2.3.*
zendframework/zend-servicemanager Version 2.3.*