Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Belajar MVC part I
Saya tertarik mempelajari struktur MVC, tapi sebelum saya berpikir terlalu jauh saya ingin meminta saran dari master-master yang ada di dalam form yang penuh kebahagiaan ini. seperti judul pada Belajar MVC part I ini saya mulai menyusun struktur file dan folder seperti di bawah ini.
#app
- #controllers
- errors.php
- index.php
- #models
- daftar_model.php
- keluar_model.php
- masuk_model.php
- #views
- #mains
- #blog
- #errors
- #js
- index.js
- index.php
- #home
- #index
- #js
- index.js
- daftar.php
- dashboard.php
- masuk.php
- #user
- index.php
- #templates
- #admin
- #blog
- #user
- header.php
- footer.php
#libs
- controller.php
- database.php
- input.php
- model.php
- session.php
- validation.php
- view.php
#public
- #css
- #images
- #js
.htaccess
index.php
Dalam MVC tentunya kita akan meload semua file yang ada di folder/directory libs. Dan untuk meload semu file yang ada di dalam libs saya menempatkannya pada index.php yang ada di luar semua folder/directory. yang isinya seperti di bawah ini.
<?php
// Session Start
session_start();
// define URL Base
define('URL','http://localhost/project1/');
// Load Controller
spl_autoload_register(function($libs){
require_once 'libs/'.$libs.'.php';
});
// Start Controller
$start=new start();
?>
Sedikit penjelasan, di dalam index.php tersebut saya langsung mengisi session_start() karena saya akan menggunakan session, kemudian saya menggunakan konstanta untuk membuat URL localhost saya untuk link base aplikasi web saya. setelah itu saya meload semu file yang ada di dalam folder/direktory libs, dan tentunya terakhir untuk memulai MVC yang kita butuhkan adalah rout untuk conversi URL menjadi controller semua MVC (models, views, controllers) yang saya masukan ke dalam file start.php dengan kelas bernama start.
Tak lupa pula saya membuat file .htaccess untuk mengamankan semua struktur MVC saya, tentunya memisahkan antara mana access file dan folder. mengenai .htaccess ini juga saya masih agak bingung fungsi sebenarnya itu untuk apa? mohon dijelaskan lebih detail lagi. isi .htaccess yang saya buat tadi seperti terlihat di bawah ini.
Options -Indexes
RewriteEngine On
RewriteBase /project1/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php/?url=$1 [QSA,L]
Demikian yang saya buat, dan untuk menutup unek-unek saya mengenai belajar MVC part I ini, dibawah ini isi start.php yang ada di dalam folder/directory libs.
<?php
/**
* Class Start Untuk Memulai MVC
*/
class Start
{
// Membuat fungsi __construct
public function __construct()
{
/**
* Mengambil URL untuk memanggil controllers
*/
$url=isset($_GET['url'])?$_GET['url']:null;
$url=explode('/',filter_var(trim($url,'/'),FILTER_SANITIZE_URL));
// Gunakan ini untuk debug Url
// var_dump($url);
// die();
} // Penutup fungsi __construct
} // Penutup class Start
?>
Sangat panjang isi pertanyaan saya. Dari isi start.php di atas, saya ingin bertanya, apakah yang saya buat itu sudah benar ataukah salah? karena saya mau $url[0] bertugas untuk meload isi yang ada di dalam file index.php yang terdapat di dalam folder/direktori app/controllers/, mohon komentar dari para master yang ada di dalam form yang penuh dengan kebahagiaan ini. Terima kasih sebelumnya.
6 Jawaban:
saya baca di http://php.net, session itu di letakkan setelah spl_autoload_register.
lalu susunan foldernya di letakkan di luar folder public_html kecuali index.php dan .htaccess ; contohnya seperti susunan folder pada laravel atau sejenisnya
@RahmadSaleh emang seperti itu? hehehehehehe... emang pengaruhnya apa?
penjelasan kenapa session di letakkan di akhir ada di sini : http://php.net/spl_autoload_register
sedang file diletakkan di luarfolder public_html untuk alasan keamanan, ya ada kelebihan dan kekurangan nya juga
Tapi kenapa punya saya... aman-aman saja ya? hasilnya ini nih... https://nolpertama.id mungkin menggunakan include berbeda dengan menggunakan require atau require_once, jika di dalam class saya saya menggunakan session,,, gimana bisa berjalan kalo session_start() di letakan setelah-nya atau bisa berjalankah? meski session_start() ada setelah sedangkan untuk memulai session kita harus mengawalinya dengan session_start()... belum dicoba sih... btw makasih infonya...