<?php
 
 
/* Class name       : Loader
 
 * Inherited from   : 
 
 * Created by       : Junaid Hassan (email : [email protected] , blog : junaidhassanalvi.wordpress.com)
 
 * Created On       : 15-April-2103
 
 * Description      : Created to load different views and controllers
 
 *                    Any one can write same functions to load files from includes and helpers or any custom folder
 
 * 
 
 * Change Logs      :
 
 * 
 
 */
 
 
class Loader {
 
 
    protected $catalog;
 
 
    public function __construct($catalog) {
 
        $this->catalog = $catalog;
 
    }
 
 
    //jha-- load model
 
    //jha-- get models folder path form config
 
    //jha-- first check if file exists in model forlder
 
    //jha-- file name must be same as model name with a php extension
 
    //jha-- check if class is present
 
    //jha-- class name must be same as model name, prefixed with 'Model' keyword
 
    //jha-- return class object if exists
 
    public function model($model) {
 
        $config = $this->catalog->get('config');
 
        $model_path = $config->base_path . '/' . $config->paths->models . '/' . $model . '.php';
 
        $class_name = $model . 'Model';
 
 
        if (file_exists($model_path)) {
 
            require($model_path);
 
            if (class_exists($class_name)) {
 
                $obj = new $class_name($this->catalog);
 
                $this->catalog->set($model, $obj);
 
            } else {
 
                die('Required model is not found');
 
            }
 
        } else {
 
            die('Required model is not found');
 
        }
 
    }
 
 
    //jha-- load views provided in $views array
 
    //jha-- get views folder path form config
 
    //jha-- check if file exists in views forlder
 
    //jha-- file name must be same as model name with a php extension
 
    //jha-- load file if present
 
    //jha-- return recived html views or output on screen according to $return parameter
 
    public function view($views, $data = array(), $return = false) {
 
 
        $config = $this->catalog->get('config');
 
        extract($data);
 
 
        $output = '';
 
 
        foreach ($views as $view) {
 
            $view_path = $config->base_path . '/' . $config->paths->views . '/' . $view . '.php';
 
            if (file_exists($view_path)) {
 
 
 
                if (!$return) {
 
                    require($view_path);
 
                } else {
 
                    ob_start();
 
                    require($view_path);
 
                    $output = ob_get_contents();
 
                    ob_end_clean();
 
                }
 
            } else {
 
                die('Required view is not found : ' . $view);
 
            }
 
        }
 
 
        return $output;
 
    }
 
 
}
 
 
?>
 
 
 |