Использование Leap ORM в Kohana

в 16:24, , рубрики: Kohana, orm, метки: ,

Использование Leap ORM в Kohana
Leap — не просто еще одна ORM. Он предоставляет функции, которых в других ORM нет. Leap также позволяет добавить новую базу данных SQL драйвера и обеспечивает соединение с базой данных, среду для управления его ресурсами. Кроме того, Leap рассматривает многие проблемы зависимости, сохраняющиеся в других ORM, следуя слабо связанной и тесно интегрированной методологии программирования.

К сожалению, я не нашел информации об этом замечательном ORM на Хабрахабре, поэтому попытаюсь исправить эту ситуацию.

0. Особенности

  • Работает со всеми основными базами данных.
    Плагины для DB2, Drizzle, Firebird, MariaDB, MS SQL, MySQL, Oracle, PostgreSQL и SQLite.
  • Стандартизация построения SQL-запросов.
    Билдер классов удаляет различия между разными SQL диалектами.
  • Обеспечивает типы данных полей.
    Ставит PHP на следующий уровень, принимая сильные типы данных.
  • Легко расширяемый.
  • Хорошо документирован.
    Много примеров и учебных пособий, а также имеет удобный для чтения API.

1. Преимущества

Таблица сравнения с другими ORM.

LEAP K3 ORM Jelly Sprig
Документация Да Да Да Частично
Пользовательский API Да Более менее Более менее Да
Легко расширяемый Да Более менее Более менее Более менее
Поддержка нескольких SQL диалектов Да Отчасти Отчасти Отчасти
Подключение новой БД Да Нет Нет Нет
Кэширование запросов Да Да Да Да
Query Builder Да Да Да Да
Сильно типизированный Да Нет Более менее Более менее
Нецелое число первичного ключа Да Нет Нет Да
Составные ключи Да Нет Нет Частично
Псевдонимы полей (aliases) Да Нет Да Нет
Адаптеры полей Да Нет Нет Нет
Связь между полями Да Да Да Да
Чтение моделей Да Нет Нет Нет
Автогенерация HTML-форм Да Нет Нет Да
Класс Auth Да Да Да Да
Modified Preorder Tree Traversal (MPTT) Да Да Да Да

2. Установка

  1. Для начала скачаем Leap ORM под свою версию Kohana в подходящем формате.
  2. Файлы из архива требуется распаковать в папку modules/leap на своем сервере.
  3. Подключаем модуль в application/bootstrap.php.
    Kohana::modules(array(
        ...
        'leap' => MODPATH . 'leap',
        ...
    ));
    

  4. Следующим шагом настроим подключение к базе данных в файле modules/leap/config/database.php.
    <?php defined('SYSPATH') OR die('No direct script access.');
    
    $config = array();
    
    $config['default'] = array(
        'type'          => 'SQL',       // string (e.g. SQL, NoSQL, or LDAP)
        'dialect'       => 'MySQL',     // string (e.g. DB2, Drizzle, Firebird, MariaDB, MsSQL, MySQL, Oracle, PostgreSQL, or SQLite)
        'driver'        => 'Standard',  // string (e.g. Standard, Improved, or PDO)
        'connection'    => array(
            'persistent'    => FALSE,       // boolean
            'hostname'      => 'localhost', // string
            'port'          => '',          // string
            'database'      => '',          // string
            'username'      => 'root',      // string
            'password'      => 'root',      // string
            'role'          => '',          // string
        ),
        'caching'       => FALSE,       // boolean
        'charset'       => 'utf8',      // string
    );
    
    return $config;
    ?>
    

  5. Можно начинать использовать Leap ORM для написания моделей.

3. Создаем подключение к базе данных

В Leap ORM можно подключиться к базе данных несколькими методами, перед подключением не забудьте настроить соединение в файле modules/leap/config/database.php.

  1. Самый простой способ подключения к базе данных — использование метода factory класса DB_Connection.
    $connection = DB_Connection::factory('default');
    // подключаемся
    $connection->open();
    // выполняем запрос
    $results = $connection->query('SELECT * FROM `user`;');
    // закрываем соединение с базой данных
    $connection->close();
    

    Обратите внимание, что соединение должно быть открыто и закрыто с помощью одного метода.

  2. Для этого метода нужно использовать DB_Connection_Pool, чтобы подключиться к базе данных. Использование такой схемы предпочтительнее, так как подключение делает за Вас Leap.
    // подключаемся
    $connection = DB_Connection_Pool::instance()->get_connection('default');
    // выполняем запрос
    $results = $connection->query('SELECT * FROM `user`;');	        
    

4. Запросы

Переписывать всю документацию по выполнению SQL-запросов, наверно будет не правильно, поэтому ниже ссылки на официальные туториалы. Код интуитивно понятен, разобраться будет легко, переводить всю доку лучше на github'е в отдельном репозитории.

Официальный сайт — orm.spadefootcode.com
Примеры и туториалы — orm.spadefootcode.com/tutorials
Leap ORM API — orm.spadefootcode.com/api/annotated.html
GitHub — github.com/spadefoot/kohana-orm-leap
BugТрекер — github.com/spadefoot/kohana-orm-leap/issues

Автор: seweb

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js