Laravel Eloquent-in Code Igniter ilə birləşdirilməsi.
Code Igniter CI kimi bilinən sadə amma güclu PHP framework-lərdən biridir. 2006-cı ildə qurulan bu framework sürətli, təhlukəsiz, yüngüldür və Model-View-Controller dizayn pattern-də işləyir.
Vaxt itirmədən keçək əsas məsələyə. Laravel eloquent ilə Codeİgniter-i birləşdirsək necə olar? Gəlin bunu bir yerdə yoxlayaq.
Laravel Eloquent-in Code Igniter ilə birləşdirilməsi.
- Illuminate/Database paketini yükləyirik
- Hook-ları konfiqurasiya edirik
- Laravel Eloquent-i test edirik
1. Illuminate/Database paketini yükləyirik.
Composer sistemi codeigniter-in üzərində hazır qurulu olur. Sadəcə terminalı acıb, codeigniter faylını tapıb aşağıdakı kodu yazmaq lazımdır.
composer require illuminate/database 5.1.16
Yuxarıdakı kodu yazanda illuminate database paketini packagist-dən çəkib bizim vendor qovluğumuza yükləyir. Daha sonra biz models qovluğunda olan fayllarımızı avtomatik olaraq yükləməliyik. Bunun üçün bizcomposer.json
faylını açıb aşağıdakı kodu əlavə etməliyik.
"autoload": {
"classmap": [
"application/models"
]
}
Kodu əlavə edəndən sonra composer.json
faylı aşağıdakı kimi görsənəcək.
vendor/autoload.php
faylının işləməsi üçün index.php
faylının yuxarı hissəsinə aşağıdakı kodu əlavə edirik.
require_once 'vendor/autoload.php';
Daha sonra isə modellərin avtomatik yüklənməsi üçün terminalı açıb composer dump-autoload
yazırıq.
2. Hook-ları konfiqurasiya edirik.
İlk oncə biz codeigniter-də hook-lardan istifadə eləmək üçün codeigniter-də hook-u aktiv eləməliyik. application/config/config.php
faylını açıb enable_hooks
-un dəyərini TRUE
eləməliyik.
$config['enable_hooks'] = TRUE;
Daha sonra application/config/hook.php
faylını açıb aşağıdakı kodu yazırıq.
$hook['post_controller_constructor'][] = [
'class' => 'EloquentHook',
'function' => 'bootEloquent',
'filename' => 'EloquentHook.php',
'filepath' => 'hooks'
];
Yuxarıdakı kodu yazdıqdan sonra application/hooks
qovluğunda ElaquentHook.php
faylı yaradıb içinə aşağıdakı kodu yazırıq.
3. Laravel Eloquent-i test edirik.
Bütün konfiqurasiya bitdi. İndi isə elediklərimizi test elemek zamanı gəldi.
Artıq biz bütün modellərə \Illuminate\Database\Eloquent\Model
-i use edəcəyik.
Məsələn User.php
Unutmayın hər dəfə yeni model yaradanda terminalda
composer dump-autoload
kodunu işlədin. Əgər işlətməsəz class not found erroru ilə qarşılasacaqsınız.
İndi isə controller-də yaratdığımız User modelini işlədək.
User::all(); // bütün user-ləri gətirəcək
User::find(1); // id-i 1 olan user-i gətirəcək
User::where('id', '>', 1)->get(); // id-i 1-dən böyük olan user-ləri gətirəcək.