Шар бази даних CodeIgniter 4

Робота над класом абстракції баз даних ще триває, хоча вже зараз можна розглянути деякі приклади та дати собі уявлення про те, як усе працюватиме далі.
Коротко про головне
На даний момент вже є все те, за допомогою чого ми можемо здійснювати підключення до бази даних та здійснювати запити, використовувати Query Builder клас побудови запитів. Поки що ведеться робота над Query Caching – класом кешування запитів, а також Database Forge – допоміжним класом роботи з базою даних та її таблицями.
Незважаючи на досить велику кількість змін, використання буде досить знайомим і зручним. Тепер в іменах методів замість стилю зміїного використовується верблюжий стиль. Конструктор запитів працюватиме у звичному режимі, вивчити доведеться лише нові функції. Це дуже добре, адже не доведеться переучуватися та звикати до нового синтаксису. Але розглянемо приклад змін.
Конфігурація
Файли конфігурації структурою залишаться такими ж, як і старі. Поки не було потреби їх міняти та вигадувати щось нове. Але тут сталася невелика зміна. Якщо раніше у файлі були просто перераховані елементи масиву, то тепер це простий клас із тим самим масивом.
Чисті запити
Створення чистих запитів без використання інструменту Query Builder є простим. Потрібно отримати екземпляр бази даних, запустити query() метод та отримати необхідний результат.
Тут слід згадати, що функція num_rows() була видалена. Раніше вона не була заохочена до використання через наявну жахливу продуктивність і проблеми з пам'яттю при її використанні. Замість цього все result * () методи повертають порожні масиви, якщо немає результатів, в той час як всі row * () методи неповертають нуль.
Приклад із параметром зв'язування запиту:
Параметр зв'язування отримав новий трюк з іменованими параметрами:
Всі значення автоматично екрануються. Тому всі запити є безпечними.
Збережені запити
Одним із найбільших змін у шарі бази даних є те, що всі запити зберігаються в історії як об'єкти запиту замість рядків у масиві. Це частково очистить код, дозволить гнучкіше кешувати запит тощо. Наприклад, якщо потрібно отримати $db-> getLastQuery(), то в результаті ви отримаєте об'єкт запиту, а не рядок.
Query Builder
Конструктор запитів працює так, як усі звикли, з однією великою зміною. Query Builder став своїм класом, а не частиною файлів драйвера.
Що буде?
Нові методи QueryBuilder— будуть додані після того, як Лонні розвідає інші фреймворки :) Це дозволить побачити які корисні функції можна було б впровадити.
Нижче короткий список нових функцій:
- first () - метод для отримання першого результату являє собою зручний метод для отримання першого результату.
- increment() та decrement() методи
- chunk() - метод циклу за всіма результатами запиту. Дозволить обробляти безліч рядків не вбиваючи сервер і не роблячи проблеми з пам'яттю.
Покращена модель— у CodeIgniter 3, як і раніше, є клас CI_Model, щоб забезпечити легкий доступ до інших частин фреймворку, отримати доступ до бібліотек і т.д. У CodeIgniter 4 не буде ні CI_file, ні MY_file.
Сторінкий висновок — ця ідея була взята з Laravel і працюватиме разом із новою моделлю, щоб можна було зробити просто так:
Посилання по темі
Ви можете допомогти та перекластинебагато коштів на розвиток сайту