Skip to content

FullStuck.phpPath-Based Colocation in a Single File

Pengalaman Next.js App Router, kesederhanaan HTMX, sintaks Blade โ€” semuanya dalam micro-framework PHP 1 file.

๐Ÿ’ก Filosofi Utama โ€‹

๐Ÿ“ Zero-Grep Architecture (Colocation) โ€‹

Lupakan membuang waktu mencari file Controller, View, dan Router yang tersebar di mana-mana. Di FullStuck v0.4, File Logika (action.php) dan File UI (content.fst.php) selalu hidup di folder yang sama. AI Anda tidak akan pernah kebingungan mencari konteks!

โšก SPA Tanpa Javascript โ€‹

Nikmati pengalaman aplikasi Single Page Application (SPA) yang mulus berkat FST-Agent. Framework secara otomatis menangkap perpindahan link dan form submission untuk melakukan injeksi DOM dengan halus, lengkap dengan fitur history API.

๐Ÿšซ Anti-OOP (Procedural First) โ€‹

Framework ini didesain 100% menggunakan fungsi prosedural (fst_*). Kode menjadi lebih mudah dibaca, dilacak, dan di-debug secara linear, tanpa abstraksi Object-Oriented Programming yang menyembunyikan state.


๐Ÿ› ๏ธ Contoh Kode (v0.4.0) โ€‹

Semuanya berbasis folder. Tidak ada file router.php!

text
app/
โ””โ”€โ”€ blog/
    โ”œโ”€โ”€ action.php        โ†’ Logika HTTP GET & POST
    โ””โ”€โ”€ content.fst.php   โ†’ File View HTML

Logika: app/blog/action.php

php
<?php
// Tangani request berdasarkan HTTP method
if (fst_is_get()) {
    $posts = fst_db()->table('posts')->get();
    return ['posts' => $posts]; // Data dikirim ke View
}

if (fst_is_post()) {
    $title = fst_input('title', 'required');
    fst_db()->table('posts')->insert(['title' => $title]);
    return fst_redirect('/blog');
}

Tampilan: app/blog/content.fst.php

html
@layout('app') <!-- Memanggil app/_layout.fst.php -->

<h1>Daftar Blog</h1>

<!-- Data $posts otomatis tersedia dari action.php -->
<ul>
    @foreach($posts as $post)
        <li>{{ $post['title'] }}</li>
    @endforeach
</ul>

<form method="POST">
    <input type="text" name="title" required>
    <button type="submit">Simpan</button>
</form>

Dibuat dengan โค๏ธ untuk ekosistem PHP yang lebih sederhana.