Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Tutorial Panada: Menambahkan Eloquent ORM dari Laravel ke Panada

Posted on September 17, 2013

Laravel, Framework PHP yang kini sedang menyita perhatian cukup banyak programmer dunia sehingga sukses menempati posisi puncak di Trending PHP Libraries di Github. Beberapa hal yang membuat Laravel melejit dengan pesat adalah fitur-fitur yang ditawarkan dan konsep pengembangannya yang tidak ingin terlalu membuang waktu untuk membuat komponennya sendiri, bahkan mengikhlaskan (baca: dengan sengaja) membuat komponen-komponennya mudah digunakan kembali oleh library lain.

Sejumlah fitur yang saya catat dan amati menjadi favorit banyak programmer adalah fitur Query Builder, Eloquent ORM (ActiveRecord), Db Schema Builder, Migration & Seeding, serta Pagination dan integrasi dengan Bootstrap!. Walaupun punya keunggulan tersebut, saya tidak terlalu suka dengan alur logic MVC dan pemanggilan Class-class didalamnya yang kebanyakan static, masih lebih cocok dengan konsep HMVC milik Panada yang simple dan alamiah.

Oke, tantangannya sekarang saya ingin Panada Framework yang saya pakai sehari-hari dalam development, tidak ketinggalan trend yang bergeser ke Laravel (dari CodeIgniter). Syukurlah, Illuminate (codename komponen dari Laravel versi 4) memang didesain mudah digunakan ulang.

Integrasi Illuminate Database ke Panada

Berikut adalah langkah menggunakan Eloquent ORM (Illuminate Database) dari Laravel ke Panada.

NB. Pastikan anda mengunduh Panada versi terbaru, khususnya untuk menangani proses Import dari Composer. (Lihat file /panada/Resources/Import.php).

1. Buat Panada Framework kompatibel dengan Composer (http://getcomposer.org).
Composer adalah sebuah tool untuk melakukan management dependensi library. Untuk menggunakan composer di Panada berikut adalah tahapannya.

Buat file composer.json di /panada/

Panada dari awal telah menyediakan folder vendor yang by default terletak di folder panada/vendors. Lokasi folder ini juga bisa disesuaikan dengan kebutuhan yang konfigurasinya ada di file app/config/main.php. Kita akan menggunakan folder ini untuk menampung semua package yang akan kita download via composer.

Kita perlu menambahkan informasi folder panada/vendors ini di dalam composer.json seperti contoh berikut:
[sourcecode]
{
"config": {
"vendor-dir": "panada/vendors"
}
}
[/sourcecode]

2. Tambahkan requirement librari Illuminate Database milik Laravel
[sourcecode]
{
"config": {
"vendor-dir": "panada/vendors"
},
"require": {
"illuminate/database": "*"
}
}
[/sourcecode]

3. Install Illuminate Database dengan composer (lihat tutorial tentang Instalasi Composer) jalankan di terminal/console/command prompt:
[sourcecode]
composer install
[/sourcecode]

Pastikan dan cek pada direktori /panada/vendors/ telah ada folder illuminate/database dkk, termasuk dependensinya.

4. Buat wrappernya untuk Panada.
[sourcecode language=”php”]
<?php
/**
Illuminate Database Wrapper for Panada Framework

@copyright (c) 2013 Luthfi Emka, SistemInformasi.biz
@license MIT
@author Luthfi Emka <luthfi@emka.web.id>
@version 0.1
@url http://code.emka.web.id/

**/

use Illuminate\Database\Capsule\Manager as Eloquently;
use Resources;

//get connection config from Panada Configuration files

//use ‘default’ string for default connection
if(empty($_connection))
$_connection = ‘default’;

$config = Resources\Config::database();
$cfg = $config[$_connection];

//wrap Illuminate Capsule Manager
$DB = new Eloquently;

//adding new db connection
$DB->addConnection([
‘driver’ => $cfg[‘driver’],
‘host’ => $cfg[‘host’],
‘database’ => $cfg[‘database’],
‘username’ => $cfg[‘user’],
‘password’ => $cfg[‘password’],
‘charset’ => $cfg[‘charset’],
‘collation’ => $cfg[‘collate’],
‘prefix’ => ”,
]);

// Set the event dispatcher used by Eloquent models… (optional)
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$DB->setEventDispatcher(new Dispatcher(new Container));

// Make this Capsule instance available globally via static methods… (optional)
$DB->setAsGlobal();

// Setup the Eloquent ORM… (optional; unless you’ve used setEventDispatcher())
$DB->bootEloquent();

[/sourcecode]

simpan sebagai Eloquently.php pada direktori /panada/vendors/ misalnya.

Contoh Penggunaaan

Berikut adalah contoh penggunaan Illuminate Database pada Model di Panada.
[sourcecode language=”php”]

<?php namespace Models;
use Resources;
use \Illuminate\Database\Eloquent\Model as Eloquent;

$_connection = ‘default’;

require GEAR."vendors/Eloquently.php";

Class Eloquently extends Eloquent
{
public $table = ‘users’;

}
[/sourcecode]

pada model diatas, kita hanya perlu menggunakan kembali \Illuminate\Database\Eloquent\Model sebagai Eloquent, meng-include Wrapper yang telah dibuat, menentukan koneksi database yang akan dipakai. Selanjutnya tinggal menggunakan Eloquent ORM sesuai petunjuknya disini:
http://laravel.com/docs/eloquent

Untuk penggunaan static di models atau controller,misalnya:
[sourcecode]
$users = Eloquently::table(‘users’)->where(‘votes’, ‘>’, 100)->get();
atau
$results = Eloquently::select(‘select * from users where id = ?’, array(1));
[/sourcecode]

jangan lupa pada bagian atas Controller/Models yang anda buat cantumkan: use Illuminate\Database\Capsule\Manager as Eloquently;

atau contoh untuk Schema Builder:
[sourcecode]
Eloquently::schema()->create(‘users’, function($table)
{
$table->increments(‘id’);
$table->string(’email’)->unique();
$table->timestamps();
});
[/sourcecode]

Tertarik? Anda bisa menggunakan Wrapper diatas di framework anda sendiri loh!

Silakan baca tentang Eloquent ORM-nya laravel disini:
http://laravel.com/docs/eloquent

Terbaru

  • Inilah Higgsfield AI Audio, Trik Canggih Buat Voice Cloning dan Dubbing Video Youtube Otomatis!
  • Everything You Need to Know About Project X and the Rumored AI-Powered Remaster of The Sims 4
  • Inilah Trik Cuan dari Instagram Jadi Affiliator, Tapi Tanpa Perlu Jualan Produk!
  • Inilah 7 Ide Channel YouTube Aneh Tapi Sederhana yang Bisa Kalian Mulai Sekarang Juga!
  • Apa itu Umroh & Keutamaannya: Inspirasi dari pergiumroh.com
  • Belum Tahu? Gini Caranya Dapat Bisnis Sukses Cuma dari Clipping Video Pake AI
  • Inilah Rahasia Perbaiki Algoritma Video YouTube yang Mulai Sepi
  • Kenapa Cicilan di Bank Syariah Itu Tetap?
  • Inilah 7 Produk Digital Paling Realistis untuk Kalian yang Mau Jualan Online Tahun Ini!
  • Inilah 4 Strategi Memilih Niche SEO Terbaik Supaya Blog Kalian Cepat Ranking
  • Ini Trik Supaya Pengunjung Toko Online Kalian Jadi Pembeli Setia Pakai Omnisend!
  • 3 Strategi AI Terbukti Biar Bisnis E-Commerce Kalian Makin Cuan 2026!
  • Inilah 6 Langkah Tembus 5.000 Follower di X, Gini Caranya Supaya Akun Kalian Nggak Stuck Lagi!
  • SEO LinkedIn: Inilah Alasan Kenapa LinkedIn Ads Lebih Efektif Buat Bisnis B2B Dibanding Platform Lain
  • Inilah Alasan Kenapa Kolom Komentar YouTube Kalian Sering Menghilang Secara Misterius!
  • Cara Kelola Auto-Posting Semua Media Sosial Kalian Pakai Metricool
  • Studi Kasus Sukses Instagram Maria Wendt Dapat 12 Juta View Instagram Per Bulan
  • ZenBook S16, Vivobook Pro 15 OLED, ProArt PX13, dan ROG Zephyrus G14, Laptop Bagus dengan Layar OLED!
  • Caranya Ngebangun Website Directory dengan Traffic Tinggi dalam Seminggu!
  • Cara Mengembangkan Channel YouTube Shorts Tanpa Wajah
  • Inilah Cara Menghitung Diskon Baju Lebaran Biar Nggak Bingung Saat Belanja di Mall!
  • Cara Jitu Ngebangun Bisnis SaaS di Era AI Pakai Strategi Agentic Workflow
  • Inilah Rincian Gaji Polri Lulusan Baru 2026, Cek Perbedaan Jalur Akpol, Bintara, dan Tamtama Sebelum Daftar!
  • Inilah 5 Channel YouTube Membosankan yang Diam-diam Menghasilkan Banyak Uang
  • Inilah Cara Pakai Google Maps Offline Biar Mudik Lebaran 2026 Nggak Nyasar Meski Tanpa Sinyal!
  • Inilah Alasan Mahkamah Agung Tolak Kasasi Google, Denda Rp202,5 Miliar Resmi Menanti Akibat Praktik Monopoli
  • Inilah Cara Daftar dan Syarat SPMB SMK Boarding Jawa Tengah 2026, Sekolah Gratis Sampai Lulus!
  • Inilah Daftar Sekolah Kedinasan 2026 untuk Lulusan SMK, Bisa Kuliah Gratis dan Berpeluang Besar Langsung Jadi CPNS!
  • Inilah Pajak TER: Skema Baru PPh 21 yang Nggak Bikin Pusing, Begini Cara Hitungnya!
  • Inilah Jadwal Resmi Jam Buka Tol Jogja-Solo Segmen Prambanan-Purwomartani Saat Mudik Lebaran 2026
  • How to Show Battery Percentage on Windows 11
  • How to Fix VMSp Service Failed to Start on Windows 10/11
  • How to Fix Taskbar Icon Order in Windows 11/10
  • How to Disable Personalized Ads in Copilot on Windows 11
  • What is the Microsoft Teams Error “We Couldn’t Connect the Call” Error?
  • How to Use Orbax Checkpointing with Keras and JAX for Robust Training
  • How to Automate Any PDF Form Using the Power of Manus AI
  • How to Training Your Own YOLO26 Object Detection Model!
  • How to Build a Full-Stack Mobile App in Minutes with YouWare AI
  • How to Create Consistent Characters and Cinematic AI Video Production with Seedance
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme