Hierachical Model View Controller (HMVC)

HMVC stands for Hierarchical Model View Controller.

Modularization – This helps in reducing the dependencies between the disparate parts of the application.


Organization – It helps you organize your work folder-wise to make your workload lesser.


Reusability – This feature of HMVC gives you the benefit to reuse your code multiple times. Also as per the creativity of developers they can use different codes for the same kind of work design.


Extendibility – It makes your application more extensible without sacrificing the ease of maintenance.

File Name :


File Name :

Modularization: We can separate each section of the app, dividing the app into different parts.
Extendibility: We can add parts to the application easily with little risk of breaking the application. For example, widgets.
Organization: Super tidy file separation and folder organization!
Reusability: If implemented well, the developer should be able to reuse every bit of code they write.

Modules

A module contains the model, view and controller folder for a certain section of the app.

File Name :


How to run Modules

  • Download modular extensions download
  • Unzip the downloaded file
  • Go into the /third_party folder
  • Copy the folder /third_party/MX
  • Go to your Codeigniter directory and paste into /application/third_party


  • download core files and paste Application/core directory.

    Download

  • MY_Loader.php
  • MY_Router.php
  • create modules directory in Application Directory.

    Create the directory application/modules/itech/

    create MVC Directory under itech folder

  • Create the directory application/modules/itech/controllers
  • Create the directory application/modules/itech/models
  • Create the directory application/modules/itech/views

  • Student.php

    <?php
    defined('BASEPATH') OR exit('no direct script access allowed');
    class Student extends CI_controller
    {
    public function __construct()
    {
    parent::__construct();
    }

    public function index()
    {
    $this->load->view('stud');
    }

    }

    ?>

    View

    File Name : stud.php

    <html>
    <head>


    </head>
    <body>
    <h1>Hello Sara </h1>
    </body>
    </html>

    Model

    File Name : Stud_model.php

    <?php
    defined('BASEPATH') OR exit('no direct script access allowed');
    class Stud_model extends CI_model
    {
    public function __construct()
    {
    parent::__construct();
    }



    }

    ?>

    File Name :

    $route['student'] = 'itech/student';

    Run your project

    File Name :

    http://localhost/hmvc/student

    Example:- MY_Controller

    File Name : application/core/MY_Controller.php

    <?php
    if (!defined('BASEPATH'))
    exit('No direct script access allowed');

    /* load the MX_Router class */
    require APPPATH . "third_party/MX/Controller.php";
    class MY_Controller extends MX_Controller {
    function __construct() {
    parent::__construct();


    }
    }

    /* End of file MY_Controller.php */
    /* Location: ./application/core/MY_Controller.php */

    Controller of modules

    File Name :

    <?php
    defined('BASEPATH') OR exit('no direct script access allowed');
    // class Student extends CI_Controller
    class Student extends MY_Controller
    {
    public function __construct()
    {
    parent::__construct();
    }

    public function index()
    {
    $this->load->view('stud');
    }

    }

    ?>

    Error : Unable to locate the specified class: Session.php

    File Name :

    If you use Codeigniter Modular Extensions HMVC this error can occur if you forget to change your class to extend MX_Controller instead of CI_Controller

    So in your case you would start your class with:

    class HOME extends MX_Controller {}
    Instead of:

    class Home extends CI_Controller {}

    Error : Unable to locate the specified class: Session.php

    File Name :

    when you extends MX_Controller in MY_Controller then you will used MY_Controller everywhere

    class Welcome extends MY_Controller {

    public function index()
    {
    $this->load->view('welcome_message');
    }
    }





    Previous Next


    Trending Tutorials




    Review & Rating

    0.0 / 5

    0 Review

    5
    (0)

    4
    (0)

    3
    (0)

    2
    (0)

    1
    (0)

    Write Review Here