Nama kelas home atau nama file home.php adalah kelas dasar (default) yang akan selalu diakses jika akar URL seperti https://example.com
.
Kelas Controller
Kelas Controller dalam Seme Framework merupakan inti dari semua logika yang ada dalam jangkauan kelas tersebut.
Nama kelas dalam Controller juga berfungsi sebagai identitas dari sebuah alamat URL.
Ketentuan Kelas Controller
Berikut ini adalah ketentuan ketika ingin menggunakan kelas Controller dengan benar supaya dapat berjalan dengan baik:
- Semua kelas Controller di simpan didalam direktori
app/controller
. -
Kelas controller harus
extends
dariSENE_Controller
.app |-- controller |---- blog.php
isi dari blog.php
<?php class Blog extends JI_Controller { ... }
-
Dan bisa juga
extends
dari kelascore
yang mana kelas tersebut merupakan hasilextends
dariSENE_Controller
.app |-- core |---- ji_controller.php |-- controller |---- home.php |---- blog.php
isi dari ji_controller.php
<?php class JI_Controller extends SENE_Controller { ... }
isi dari home.php<?php class Home extends JI_Controller { ... }
-
Penamaan nama file controller dan nama kelas controller hanya boleh, diawali oleh huruf, kemudian diteruskan oleh huruf dan atau angka, dan underscore.
Contoh (benar): -nama file: faktur_pajak.php -nama kelas:
<?php class Faktur_Pajak extends SENE_Controller { .. }
Contoh (Salah): -nama file: 1faktur pajak.php -nama kelas:
<?php class 1Faktur Pajak extends SENE_Controller { .. }
- Nama file kelas controller harus dalam huruf kecil (Lower Case) dan berakhiran
.php
. -
Nama kelas dan nama file harus identik tapi boleh tidak sama huruf besar dan atau huruf kecilnya (tidak case sensitive).
Contoh (benar): -nama file: faktur_pajak.php -nama kelas:
<?php class Faktur_Pajak extends SENE_Controller { .. }
Contoh (benar): -nama file: fakturpajak.php -nama kelas:
<?php class FakturPajak extends SENE_Controller { .. }
Contoh struktur Controller
Berikut ini adalah contoh struktur direktori dari controller:
app |-- controller |---- home.php |---- blog.php
Anggap saja kita sudah mengekstrak atau clone Seme Framework ke dalam direktori D:\XAMPP\htdocs\seme_framework
.
Jadi ketika kita membuka http://localhost/seme_framework
maka Seme Framework akan membuka kelas controller yang ada di app/controller/home.php
.
Bagaimana seandainya kita akan membuka alamat URL http://localhost/seme_framework/blog
, apakah akan muncul?
Jawabannya adalah Seme Framework akan memamnggil file controller app/controller/blog.php
jika ada.
Seme Framework will only load controller with filename and its class name are matched.
Kelas SENE_Controller
Kelas SENE_Controller merupakan kelas dasar yang telah memiliki berbagai fungsi (method) didalamnya untuk keperluan pembangunan aplikasi berbasis web.
Ada banyak fungsi dan variabel yang telah tersedia di kelas SENE_Controller ini.
Penggunaan Dasar
Berikut ini adalah cara penggunaan dasar dari Kelas Controller di Seme Framework.
Controller Default
Berikut ini adalah source code dari kelas home:
<?php
class Home extends SENE_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
echo 'Thankyou for using Seme Framewrok';
}
}
Controller untuk error 404 (not found)
Controller not found biasanya digunakan untuk aplikasi berbasis web karena mungkin saja ada kesalah URL atau data di aplikasi sudah dihapus atau disembunyikan.
Controller not found ini sangat penting untuk menghasilkan pengalaman yang baik terhadap pengguna.
<?php
class Notfound extends SENE_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
header("HTTP/1.0 404 Not Found");
echo '404 Notfound';
}
}
Pembatasan akses pada method dan properti
Seme Framework telah mendukung deklrasi untuk private method, private properti, protected method dan protected properti.
<?php
class Home extends SENE_Controller{
var $public_var = 'Yi-Ha!'
var $__underWear = 'My Private Things'
public function __construct(){
parent::__construct();
}
private function __processFile(){
return true;
}
public function index(){
echo 'not found'
}
}