Selamat Datang di TurboFrame
TurboFrame adalah framework PHP super ringan dan super cepat yang dirancang khusus untuk mahasiswa, pelajar, dan developer profesional. Dengan filosofi "Zero Complexity", kami memastikan setiap baris kode mudah dipahami tanpa mengorbankan performa.
🚀 Mengapa TurboFrame?
- 3x lebih cepat dalam benchmark standar
- Sintaks yang sangat mudah dipelajari (cocok untuk pemula atau pro)
- Built-in PWA support (website jadi aplikasi mobile)
- Nitrous Mode untuk performa produksi maksimal
Welcome to TurboFrame
TurboFrame is a super lightweight and blazing fast PHP framework designed specifically for students, learners, and professional developers. With our "Zero Complexity" philosophy, we ensure every line of code is easy to understand without sacrificing performance.
🚀 Why TurboFrame?
- 3x faster in standard benchmarks
- Very easy to learn syntax (suitable for beginners or pros)
- Built-in PWA support (turn websites into mobile apps)
- Nitrous Mode for maximum production performance
Installation
Pastikan Anda sudah menginstall Composer dan PHP 8.1+. Buka terminal:
Make sure you have Composer and PHP 8.1+ installed. Open your terminal:
composer create-project turboframe/lambostarter my-project
cd my-project
php lambo serve
Buka browser di http://localhost:7000 - Done! 🎉
Open your browser at http://localhost:7000 - Done! 🎉
Configuration (.env)
File .env menyimpan semua konfigurasi penting aplikasi Anda:
The .env file stores all your application's important configurations:
APP_NAME=MyApp
APP_ENV=development
APP_DEBUG=true
APP_URL=http://localhost:7000
# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=root
DB_PASSWORD=
# Cache & Performance
CACHE_DRIVER=opcache
NITROUS_MODE=false
Struktur Folder
Directory Structure
Routing
Routing menghubungkan URL dengan logic aplikasi Anda. Edit file routes/site.php:
Routing connects URLs to your application logic. Edit routes/site.php:
// Basic GET route
$router->get('/', function() {
return view('welcome');
});
// Route with parameters
$router->get('/user/{id}', function($id) {
return "User ID: " . $id;
});
// Named routes (recommended!)
$router->get('/dashboard', 'DashboardController@index')->name('dashboard');
// POST routes (for forms)
$router->post('/login', 'AuthController@login');
// Route groups with middleware
$router->group(['prefix' => 'admin', 'middleware' => 'auth'], function($router) {
$router->get('/users', 'AdminController@users');
$router->get('/settings', 'AdminController@settings');
});
Controllers
Controllers mengorganisir logic aplikasi Anda. Buat dengan CLI:
Controllers organize your application logic. Create with CLI:
php lambo make:controller UserController
Contoh controller lengkap:
Complete controller example:
namespace App\Controllers;
use TurboFrame\Http\Request;
use TurboFrame\Http\Response;
use App\Models\User;
class UserController
{
public function index()
{
$users = User::all();
return view('users.index', ['users' => $users]);
}
public function show(Request $request, $id)
{
$user = User::find($id);
return view('users.show', ['user' => $user]);
}
public function store(Request $request)
{
$data = $request->post();
User::create($data);
return redirect('/users');
}
}
Views & Templates
TurboFrame menggunakan template engine .turbo.php yang powerful namun mudah:
TurboFrame uses a powerful yet simple .turbo.php template engine:
1. Menampilkan Data (Echoing)
1. Echoing Data
{{-- Aman dari XSS (Recommended) --}}
Hello, {{ $name }}
{{-- Raw HTML (hati-hati!) --}}
{!! $html_content !!}
2. Kondisi (If/Else)
2. Conditionals (If/Else)
@if($user->isAdmin())
@elseif($user->isModerator())
@else
Welcome, User!
@endif
3. Perulangan (Loops)
3. Loops
@foreach($products as $product)
{{ $product->name }}
${{ $product->price }}
@endforeach
@if(empty($products))
No products found.
@endif
4. Include Components (@calling)
4. Include Components (@calling)
{{-- Memanggil navbar --}}
@calling('components.navbar')
{{-- Dengan data --}}
@calling('components.card', ['title' => 'Hello', 'content' => 'World'])
Database (Query Builder)
Query Builder memudahkan interaksi dengan database tanpa menulis SQL manual:
Query Builder makes database interaction easy without writing manual SQL:
// SELECT - Get all records
$users = db()->table('users')->get();
// WHERE - Filter data
$admins = db()->table('users')
->where('role', 'admin')
->get();
// INSERT - Add new record
db()->table('users')->insert([
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => password_hash('secret', PASSWORD_DEFAULT)
]);
// UPDATE - Modify existing record
db()->table('users')
->where('id', 1)
->update(['name' => 'Jane Doe']);
// DELETE - Remove record
db()->table('users')->where('id', 5)->delete();
// Advanced queries
$results = db()->table('posts')
->where('status', 'published')
->orderBy('created_at', 'desc')
->limit(10)
->get();
Models (ORM)
Models menyediakan cara yang lebih elegan untuk berinteraksi dengan database:
Models provide a more elegant way to interact with your database:
namespace App\Models;
use TurboFrame\Database\Model;
class User extends Model
{
protected string $table = 'users';
protected array $fillable = ['name', 'email', 'password'];
protected array $hidden = ['password'];
}
// Usage in controllers:
$users = User::all();
$user = User::find(1);
$activeUsers = User::where('status', 'active')->get();
Middleware
Middleware memfilter HTTP requests sebelum mencapai controller:
Middleware filters HTTP requests before reaching your controller:
// Create middleware
php lambo make:middleware AuthMiddleware
// Example middleware
namespace App\Middleware;
class AuthMiddleware
{
public function handle($request, $next)
{
if (!isset($_SESSION['user_id'])) {
return redirect('/login');
}
return $next($request);
}
}
// Apply to routes
$router->group(['middleware' => 'auth'], function($router) {
$router->get('/dashboard', 'DashboardController@index');
});
Helper Functions
TurboFrame menyediakan banyak helper functions untuk mempercepat development:
TurboFrame provides many helper functions to speed up development:
| Function | Kegunaan | Purpose |
|---|---|---|
| view($name, $data) | Render view | Render view |
| redirect($url) | Redirect ke URL | Redirect to URL |
| url($path) | Generate URL lengkap | Generate full URL |
| route($name) | URL dari named route | URL from named route |
| db() | Akses database | Access database |
| dd($var) | Dump & Die (debug) | Dump & Die (debug) |
| session($key) | Akses session | Access session |
| csrf_token() | Generate CSRF token | Generate CSRF token |
| env($key) | Baca .env | Read .env |
Validation
Validasi input user untuk keamanan aplikasi:
Validate user input for application security:
// In controller
public function store(Request $request)
{
$data = $request->post();
// Manual validation
if (empty($data['email']) || !filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
return redirect('/register')->with('error', 'Invalid email');
}
// Use helper
$email = filter_var($data['email'], FILTER_SANITIZE_EMAIL);
$name = htmlspecialchars($data['name'], ENT_QUOTES, 'UTF-8');
// Save to database
db()->table('users')->insert([
'name' => $name,
'email' => $email
]);
}
Sessions & Authentication
Mengelola session dan autentikasi user:
Managing sessions and user authentication:
// Set session
$_SESSION['user_id'] = $user->id;
$_SESSION['user_name'] = $user->name;
// Get session
$userId = session('user_id');
// Check if logged in
if (isset($_SESSION['user_id'])) {
// User is logged in
}
// Logout
session_unset();
session_destroy();
// Flash messages
$_SESSION['success'] = 'Login successful!';
// In view:
Lambo CLI Commands
CLI untuk mempercepat development:
CLI to speed up development:
php lambo serve
Jalankan development server
Start development server
php lambo make:controller NameController
Buat controller baru
Create new controller
php lambo make:model ModelName
Buat model baru
Create new model
php lambo cache:clear
Hapus semua cache
Clear all caches
php lambo route:list
Lihat semua routes
List all routes
🚀 Nitrous Mode
Fitur unggulan TurboFrame! Kompilasi seluruh aplikasi menjadi 1 file untuk performa maksimal di production.
TurboFrame's flagship feature! Compile your entire application into 1 file for maximum production performance.
php lambo nitrous compile
✅ Menggabungkan ribuan file PHP menjadi 1 file
✅ Mengurangi I/O disk hingga 90%
✅ Meningkatkan kecepatan response 3-5x lipat
✅ Otomatis mengaktifkan OPcache optimization
✅ Combines thousands of PHP files into 1 file
✅ Reduces disk I/O by up to 90%
✅ Increases response speed 3-5x
✅ Automatically enables OPcache optimization
Deployment to Production
Langkah-langkah deploy aplikasi TurboFrame ke server production:
Steps to deploy TurboFrame application to production server:
1. Persiapan ServerServer Preparation
# Install PHP 8.1+, Composer, dan web server (Apache/Nginx)
sudo apt update
sudo apt install php8.1 php8.1-fpm php8.1-mysql composer
2. Upload & InstallUpload & Install
git clone your-repo.git
cd your-project
composer install --no-dev --optimize-autoloader
3. Konfigurasi ProductionProduction Configuration
# Edit .env
APP_ENV=production
APP_DEBUG=false
NITROUS_MODE=true
# Compile with Nitrous
php lambo nitrous compile
4. Set PermissionsSet Permissions
chmod -R 755 storage
chmod -R 755 public
chown -R www-data:www-data storage