Go to file
2012-01-11 10:26:56 -05:00
app Some DB fixes and error handling improvements 2012-01-04 19:47:32 -05:00
assets Improved compatiblity with Quercus PHP 2012-01-11 10:26:56 -05:00
modules/welcome Improved compatiblity with Quercus PHP 2012-01-11 10:26:56 -05:00
sys Improved compatiblity with Quercus PHP 2012-01-11 10:26:56 -05:00
index.php Improved compatiblity with Quercus PHP 2012-01-11 10:26:56 -05:00
README.md Updated Readme with some basic information 2012-01-09 10:59:02 -05:00

miniMVC

miniMVC is a minimalistic Modular MVC framework, with built-in minifier, and pure-PHP templating system.

Unique features

Extensive use of PHP's magic methods on the base class

  • __toString() method allows a view of the current class object when the current class object is used as a string. If you prefer var_dump() or var_export(), you can pass the name of that function if you call the __toString method directly.

    Eg. $this . "string", $this->__toString(), echo $this;

  • __call() method allows (in PHP 5.3+) the dynamic addition of callable closure objects

    Eg. $this->foo = function($baz){} is callable as $this->foo(), with the current object as the last argument

Database class is an extension of PHP's PDO class.
  • miniMVC supports any database supported by PDO
  • Database class also implements the __toString method

File Structure

  • index.php - framework frontend

  • app - configuration and app-wide files

    • config - configuration files
    • errors - error page templates
    • views - global page templates
  • assets - frontend files

    • js - javascript files
    • css - css files
    • config - minifier configuration files
  • modules - MVC triads

    • controllers - controller classes
    • models - model classes
    • views - module-specific views
  • sys - core framework classes

Common Tasks

  • Creating a controller

      <?php 
      class Foo extends MM_Controller {
    
      	function __construct()
      	{
      		parent::__construct();
      	}
      }
    
  • Creating a model

      <?php
      class Bar extends MM_Model {
    
      	function __construct()
      	{
      		parent::__construct();
      	}
      }
    
  • Loading a database (From a Model)

    $this->db = db::get_instance($db_name);

    Note that multiple databases can be used in the same class by specifying a different database name.

  • Loading a model (From a controller)

    $this->load_model($model)

Disclaimer

Please treat this as alpha-level code. Structure might change, classes might appear or disappear overnight.