Yo, welcome ke LaraDoy! Framework PHP simpel tapi powerful, terinspirasi dari Laravel. Perfect buat lo yang pengen bikin web app cepet tanpa ribet.
- Routing simpel
- MVC Architecture
- Database abstraction pake PDO
- View rendering
- Singleton pattern buat koneksi database
-
Clone repo ini:
git clone https://github.com/Hadi-Akram-Ramadhan/LaraDoy.git
-
Masuk ke direktori project:
cd LaraDoy
-
Setup database lo di
config/database.php
:startLine: 12 endLine: 17
-
Bikin database baru dengan nama 'framework' (atau sesuai yang lo set di config).
-
Import struktur database (asumsi lo udah punya file SQL):
mysql -u root -p framework < database.sql
-
Bikin controller baru di folder
controllers
. ContohUserController.php
:<?php require_once 'core/Controller.php'; class UserController extends Controller { public function index() { $users = $this->db->query("SELECT * FROM users")->fetchAll(); $this->view('users/index', ['users' => $users]); } }
-
Bikin view baru di folder
views
. Contohviews/users/index.php
:<!DOCTYPE html> <html> <head> <title>Users</title> </head> <body> <h1>Users List</h1> <ul> <?php foreach ($users as $user): ?> <li><?= $user['name']; ?></li> <?php endforeach; ?> </ul> </body> </html>
-
Tambahin route baru di
index.php
:startLine: 28 endLine: 30
Tambahin line ini:
$router->add('/users', 'UserController@index');
-
Jalanin server PHP:
php -S localhost:8000
-
Setup .htaccess (untuk yang bagian "RewriteBase /nama-direktori-projek-kamu/", itu diubah sesuai dengan nama folder/direktori projek lo agar sesuai dengan setup projek lo)
RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
-
Buka browser, ketik
http://localhost:8000/users
-
Apabila masih proses production gunakan .htaccess ini:
RewriteEngine On RewriteBase /nama-direktori-projek-lo/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
config/
: Isinya file konfigurasicontrollers/
: Tempat controller-controller locore/
: Komponen inti frameworkhelpers/
: Fungsi-fungsi helperviews/
: File-file viewindex.php
: Entry point aplikasi
-
Routing: Selalu definisiin route baru di
index.php
tiap bikin controller atau method baru. -
Database: Pake prepared statements buat hindarin SQL injection:
$stmt = $this->db->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$id]); $user = $stmt->fetch();
-
Views: Bisa pake helper function
view()
di controller:view('users/show', ['user' => $user]);
-
Nambahin Middleware: Lo bisa extend
Router
class buat support middleware:class Router { // ... kode yang udah ada ... public function addMiddleware($route, $middleware) { // Implementasi middleware di sini } }
-
Error Handling: Tambahin try-catch di
Router::dispatch()
buat handle error global. -
Autoloading: Implementasiin autoloading pake Composer buat load class otomatis.
-
Environment Variables: Pake file
.env
buat simpen konfigurasi sensitif. -
Testing: Mulai implementasiin unit testing pake PHPUnit.
Mau kontribusi? Jangan ragu buat bikin pull request atau buka issue!
atau kalian bisa email ke: [email protected] kalau punya pertanyaan atau sekedar pengen ngobrol soal framework ini!
LaraDoy di-license di bawah Apache2.0 License. Bebas dipake, dimodif, didistribusiin. Tapi inget, no warranty ya!
Semoga README ini membantu, Hadi! Kalo ada yang kurang jelas atau perlu ditambahin, langsung bilang aja ya. Goodluck sama framework lo!