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.

avatar datrosumendong
@datrosumendong

201 Kontribusi 38 Poin

Diperbarui 6 tahun yang lalu

6 Jawaban:

Mantaps.. (y)

avatar ruswan
@ruswan

31 Kontribusi 21 Poin

Dipost 6 tahun yang lalu

Makasih tanggapannya mas @ruswan

avatar datrosumendong
@datrosumendong

201 Kontribusi 38 Poin

Dipost 6 tahun yang lalu

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

avatar RahmadSaleh
@RahmadSaleh

5 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

@RahmadSaleh emang seperti itu? hehehehehehe... emang pengaruhnya apa?

avatar datrosumendong
@datrosumendong

201 Kontribusi 38 Poin

Dipost 6 tahun yang lalu

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

avatar RahmadSaleh
@RahmadSaleh

5 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

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...

avatar datrosumendong
@datrosumendong

201 Kontribusi 38 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban