Below is the text of the page https://zippy.com.ua/zdb stored 2023-07-07 by archive.org.ua. The original page over time could change. View as original html

Безкоштовна програма для складського обліку та торгівлі

[#top] Контакти Про проект Zippy склад Загальні відомості Керівництво користувача Документація розробника Модулі та розширення Інші проекти Фреймворк Zippy Библіотека ZDB База знань Zippy Note Бiблiотека для цифрового пiдпису ZDB Библиотека для доступа к БД Библиотека представляет собой Active Record, построеный на функциональности библиотекаи ADODB. Библиотека позволяет работать с бизнес-сущностями, не используя маппинг или иной способ явного указания связи полей бизнес-сущности с полями таблицы БД. Основной репозитарий на Гитхабе Описание идеи в статье на Хабре Документация по классам библиотеки ZDB\DB Класс, реализующий коннект к БД. Синглетон-обертка для ADODB. Для инициализации необходимо передать параметры соединения. \ZCL\DB\DB::config($host, $dbname,$dbuser,$dbpass,[$driver=mysqli]); Получение коннекта (для нативных запросов) DB::getConnect(); ZDB\Entity Основной класс библиотеки, являющийся базовым для всех Entity. К примеру, есть таблица пользователей CREATE TABLE `users` ( `username` varchar(255) , `updated` date , `user_id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`user_id`) ) Создадим класс сущности Пользователь на основе класса ZDB\Entity /** * @table=users * @keyfield=user_id */ class User extends Entity{ protected function init() { $this->user_id = 0; $this->updated = time(); } protected function afterLoad() { $this->updated = strtotime($this->updated); } } Если у нас есть представление для выборки пользователей, например usersview, тогда мы указываем в псевдоаннотациях @view=usersview . В этом случае выборка данных будет идти из представления, а запись в таблцу. Метод init() используется для инициализации полей. Метод afterLoad() вызывается после загрузки содержимого из соответствующей строки таблицы БД. В данном случае преобразовывает дату в timestamp для универсальности дальнейшей работы. Оба метода необязательны. Самое важное - имена полей, к которым идет обращение при работе с экземпляром сущности, должны совпадать с именами в таблице БД. Все остальное будет автоматизировано библиотекой ADODB. При сохранении данных библиотека сама определит типы полей Бд и сформирует SQL запрос с соответствующими преобразованиями. Никакого специального маппинга полей или генерации структур не нужно. Некоторые примеры работы с Entity: //загрузка пользователя. $user = User::load($id); //записать пользователя с новыми значениями. $user->username='newname'; $user->updated = time(); $user->save(); //новый пользователь //если $user->user_id равен 0 создается новая запись и полю $user->user_id //присваивается значение из автоинкрементного поля. $user = new User(); $user->username='newname'; $user->save(); //удаление пользователя User::delete($id); //найти всех пользователей кроме админа $users = User::find("username 'admin'"); //найти количество пользователей $users = User::findCnt(); //вернуть имена пользователей в виде массива ключ/значение // например для комбобокса $users = User::findArray("username","","username asc"); Класс сущности - обычный класс и может быть расширен любыми необходимыми методами. Например: проверка юзера по логину и паролю. Зворотній зв'язок Ім'я E-mail Уважно перевіряйте адресу. Якщо за пару діб нема відповіді ймовірніше була неправильна зворотня адреса Повідомлення Закрити Відправити Zippy Store © 2015-2023 | Форма зворотнього зв'язку | Контакти