* * * * * * * * * * * * * * * * * * * * * * * * *
Kurumi adalah sebuah Framework sederhana yang namanya terinspirasi dari sebuah karakter anime yaitu Tokisaki Kurumi Kami membuat Framework ini bertujuan untuk memberi kemudahan kepada user untuk membuat sebuah web aplikasi mengunakan bahasa PHP NATIVE
Kami mengembangkan Framework ini tanpa mengunakan composer
* * * * * * * * * * * * * * * * * * * * * * * * *
Fitur-Fitur yang tersedia:
* * * * * * * * * * * * * * * * * * * * * * * * *
Kami menyediakan 2 cara instalasi, yaitu dengan :
1. Clone repository
Kamu dapat membuka terminal dan menggunakan perintah berikut.
git clone https://github.com/bydefaultiloveyou/Kurumi.git && cd Kurumi && rm -rf .git
Secara otomatis akan melakukan cloning pada source code yang ada di branch default ( master ), jika ingin mengunduh versi stable bisa menambahkan -b 1.x di depan clone.
2. Unduh file ZIP
Kamu juga bisa mengunduhnya secara manual dengan menekan tombol di samping. Download
* * * * * * * * * * * * * * * * * * * * * * * * *
Setelah melakukan cloning repo atau download zip, masuk ke repo/folder 'Kurumi' melalui terminal dengan menjalankan perintah:
cd Kurumi
Untuk menjalankan server, jalankan perintah:
php kurumi server
Kemudian, buka localhost:3000 pada browser.
* * * * * * * * * * * * * * * * * * * * * * * * *
Kami mempunyai kurumi, dia adalah sebuah program simple yang akan membantu masa development aplikasi kalian. Di dalamnya ada berbagai macam command yang bisa kalian gunakan.
appFolder paling penting, sebagian besar komponen dari aplikasimu tersimpan disini.configBerisi file konfigurasi yang dapat diatur sesuai keinginanmu, dapat mempermudah pengaturan seperti database, aktivasi fitur, lokasi input dan output untuk view dan sebagainya.publicBerisi file-file yang boleh dilihat oleh user maupun developer secara publik.resourcesFolder resources mengandung view yang sebagai mentahanmu, tidak di compile asset seperti CSS atau JavaScriptroutesBerisi konfigurasi rute yang dapat diakses pada aplikasimu beserta handler-nya (fungsi atau controller).storageBerisi file yang dibuat secara otomatis oleh kurumi framework.vendorBerisi file sistem dari framework ini. Disarankan tidak mengubah apapun yang ada di dalam sini.
* * * * * * * * * * * * * * * * * * * * * * * * *
Kurumi Mengadaptasi konsep URI dan closure, menyediakan sebuah ekpresi simple dan method yang mendefinisikan routing tanpa komplikasi file konfigurasi routing
use Kurumi\Http\Route;
Route::get('/greeting', function () {
echo 'Hello World';
});Semua routing Kurumi di definisikan di file routing mu, yang berlokasi di routes directory, file ini otomatis dijalankan oleh aplikasimu. File routes/web.php itu mendefinisikan sebuah tampilan web mu.
Kamu akan mendefinikan di file routes/web.php dan akan di akses setiap kamu mengunjungi url di browsermu. Seperti contoh, kamu mungkin mengakses routing mengikuti navigasi seperti http://kurumi.com/user di browser mu :
use App\Controllers\UserController;
Route::get('/user', [UserController::class, 'index']);ini akan secara otomatis akan di akses jika kamu mengunjung route /user di web browsermu
Kurumi menyediakan beberapa pilihan routing seperti
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::delete($uri, $callback);Route::get($uri, $callback);Method GET biasanya digunakan hanya mengambil data. Disini juga tempat untuk menampilan halaman website mu dengan :
view($filename)Route::post($uri, $callback);Method POST digunakan untuk mengirimkan data ke server yang ditentukan, sering menyebabkan perubahan pada keadaan atau efek samping pada server. bahasa simple nya nginsert data ke Database
Route::put($uri, $callback);Method PUT menggantikan data yang ada dengan data yang dikirimkan / ngerubah data di Database.
Route::delete($uri, $callback);Method DELETE untuk menghapus data yang ada di Database.
* * * * * * * * * * * * * * * * * * * * * * * * *
View adalah sebuah fungsi untuk menampilkan halaman web. Secara default file mengarah ke folder resources/views sebagai contoh
di dalam folder
.
βββ resources
βββ views
βββ components
β βββ layouts.kurumi.php
βββ welcome.kurumi.phpfungsi view secara otomatis akan menampilkan isi dari file welcome.kurumi.php cukup dengan menulisnya seperti di bawah ini
view('welcome')kamu juga dapat mengirimkan data ke halaman view dengan mengirim data tersebut sebagai parameter kedua
view('welcome', [ 'waifu' => 'Kurumi' ])Kurumi mengadaptasi . sebagai lambang folder. Sebagai Contoh jika kamu ingin menampilkan file yang ada di sub directory kamu harus menyertakan format folder.file contoh :
view('components.layouts')maka isi dari file components/layouts.kurumi.php akan ditampilkan
* * * * * * * * * * * * * * * * * * * * * * * * *
Haniel adalah nama angel milik Natsumi yang dapat merubah wujud benda apapun. Dia dapat merubah expression dan directive pada template html kamu menjadi kode php. Di bawah ini beberapa expression dan directive yang dapat digunakan :
- normal expression
{ $waifu = 'kurumi' }
baris di atas akan diterjemahkan menjadi
<?php $waifu = 'kurumi' ?>
- normal echo expression (memunculkan nilai dari variabel)
{! $waifu !}
- special echo expression (memunculkan nilai dari variabel yang dibungkus fungsi built-in php yaitu
htmlspecialchars)
{{ $waifu }}
Note: directive diawali dengan tanda @
<div>
@if ( $kurumi === "sayang lutfi" ):
<p> π eh abang sayang</p>
@elseif ( $nakanoNino === "istri miko" ):
<p>Betsuniiii >////< </p>
@else:
<p>ayangku siapa? πΏ</p>
@endif
</div>
@each ( $waifus as $name ):
<p>{{ $name }}</p>
@endeach
kami menyediakan template yang sederhana, template ini didorong oleh inheritance. Semua template ini harus menggunakan extension .kurumi.php.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#F380AB" />
<link rel="manifest" href="@asset('manifest.json')" />
<title></title>
@css ("https://fonts.googleapis.com/css2?family=Radio+Canada&display=swap" rel="stylesheet")
@css ("https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css")
@css ("css/styles.css")
</head>
<body>
@deus ("layouts")
@javascript ("https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js")
</body>
</html>@section ("layouts")
<main class="container">
<figure class="text-center p-5">
<img width="400" src="https://pbs.twimg.com/media/FJxua79XwAMXzND?format=jpg&name=900x900" alt="Kurumi" />
<h2>WELCOME TO KURUMI FRAMEWORK</h2>
<figcaption>
<p class="text-secondary">Simple framework for Koneksi.php</p>
<ul class="d-flex w-100 justify-content-center">
<a href="https://github.com/bydefaultiloveyou/Kurumi.git" target="__blank" style="text-decoration: none;" class="px-4 rounded-5 m-2 py-1 bg-primary text-white">
<li>Documentation</li>
</a>
<li class="px-4 py-1 bg-primary text-white rounded-5 m-2">Lincense MIT</li>
</ul>
</figcaption>
</figure>
</main>
@endsection
@extends ("layouts.main")Perhatikan bahwa @deus berfungsi sebagai parent dari layout, @deus('layouts)' akan di isi oleh child dari layout yang telah di tentukan di @section ('layouts').
untuk parameter dari parent @deus nya harus sama dengan child di @section.
Perhatikan juga @extends ('layouts.main') ini parameter nya adalah path dari file parent layout yang kamu punya, untuk penulisan @extends harus ditulis dipaling bawah code kamu.
Sama seperti fungsi built-in milik php yakni include, namun tidak perlu menggunakan tag pembuka <?php dan penutup ?>. @include secara default memanggil file pada folder resources/views. Dan perlu diingat bahwa kurumi membaca tanda titik . sebagai tanda garis miring / yang biasa menjadi pemisah antara folder.
@include ('components.header')
@include ('components.navbar')
Dapat digunakan untuk mengambil file dari folder public misal kamu memiliki file css dan javascript di dalamnya.
@asset ('css/style.css')
@asset ('js/script.js')
Melengkapi form menggunakan method selain bawaan html ( GET dan POST ) seperti PUT dan DELETE.
<form action="/user" method="POST">
@method(DELETE)
<input type="text" name="user" />
<button>DELETE</button>
</form>
