Removed in favor of autoloading
This commit is contained in:
parent
6708888579
commit
e434c0d865
16
README.md
16
README.md
@ -88,8 +88,16 @@ Database connections are set in /app/config/db.php
|
|||||||
|
|
||||||
* Loading a class
|
* Loading a class
|
||||||
|
|
||||||
Load a system library, or a custom library from the `app/classes` folder.
|
Librarys / classes found in `app/classes` or `sys/libraries` are autoloaded.
|
||||||
|
To call a library, simply instantiate that class.
|
||||||
`$this->load_class($class)` - creates an instance of that class as a member of the current class. After loading the class, you can call its methods like so
|
|
||||||
|
|
||||||
`$this->[class name]->method()`
|
Classes with a `get_instance` static methods should be called like so:
|
||||||
|
|
||||||
|
`$obj =& class::get_instance()`
|
||||||
|
|
||||||
|
|
||||||
|
Other classes should be called using the new operator
|
||||||
|
|
||||||
|
`$obj = new class()`
|
||||||
|
|
||||||
|
|
@ -24,6 +24,41 @@
|
|||||||
// ! Error handling / messages
|
// ! Error handling / messages
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function to autoload libraries
|
||||||
|
*
|
||||||
|
* @param string
|
||||||
|
*/
|
||||||
|
function autoload($name)
|
||||||
|
{
|
||||||
|
// In a subdirectory? No problem
|
||||||
|
if (strpos("/", $name) !== FALSE)
|
||||||
|
{
|
||||||
|
$n = explode("/", $name);
|
||||||
|
$name = $n[count($n) -1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try system library first, then app library
|
||||||
|
$name = strtolower($name);
|
||||||
|
$path = MM_SYS_PATH . "libraries/{$name}.php";
|
||||||
|
|
||||||
|
if ( ! is_file($path))
|
||||||
|
{
|
||||||
|
$path = MM_APP_PATH . "classes/{$name}.php";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load the class file if need be
|
||||||
|
if ( ! class_exists($name))
|
||||||
|
{
|
||||||
|
if (is_file($path))
|
||||||
|
{
|
||||||
|
require_once($path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to run on script shutdown
|
* Function to run on script shutdown
|
||||||
* -used to catch most fatal errors, and
|
* -used to catch most fatal errors, and
|
||||||
@ -272,6 +307,9 @@ function init()
|
|||||||
require_once(MM_SYS_PATH . 'core/miniMVC.php');
|
require_once(MM_SYS_PATH . 'core/miniMVC.php');
|
||||||
array_map('do_include', glob(MM_SYS_PATH . 'core/*.php'));
|
array_map('do_include', glob(MM_SYS_PATH . 'core/*.php'));
|
||||||
|
|
||||||
|
// Start the library autoloader
|
||||||
|
spl_autoload_register('autoload');
|
||||||
|
|
||||||
// Map to the appropriate module/controller/function
|
// Map to the appropriate module/controller/function
|
||||||
route();
|
route();
|
||||||
}
|
}
|
||||||
|
@ -36,63 +36,6 @@ class miniMVC extends MM {
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to load classes into the singleton
|
|
||||||
*
|
|
||||||
* @param string $name
|
|
||||||
* @return object
|
|
||||||
*/
|
|
||||||
public function load_class($name)
|
|
||||||
{
|
|
||||||
// In a subdirectory? No problem
|
|
||||||
if (strpos("/", $name) !== FALSE)
|
|
||||||
{
|
|
||||||
$n = explode("/", $name);
|
|
||||||
$name = $n[count($n) -1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try system library first, then app library
|
|
||||||
$path = MM_SYS_PATH . "libraries/{$name}.php";
|
|
||||||
$name = "MM_{$name}";
|
|
||||||
|
|
||||||
if ( ! is_file($path))
|
|
||||||
{
|
|
||||||
$path = MM_APP_PATH . "classes/{$name}.php";
|
|
||||||
$name = str_replace('MM_', '', $name);
|
|
||||||
}
|
|
||||||
|
|
||||||
$class = "{$name}";
|
|
||||||
|
|
||||||
// Load the class file if need be
|
|
||||||
if ( ! class_exists($class, FALSE))
|
|
||||||
{
|
|
||||||
if (is_file($path))
|
|
||||||
{
|
|
||||||
require_once($path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the object, and add it to the current miniMVC object
|
|
||||||
if (class_exists($class, FALSE))
|
|
||||||
{
|
|
||||||
// Remove MM_ prefix from name
|
|
||||||
$name = str_replace('MM_', '', $name);
|
|
||||||
|
|
||||||
if ( ! isset($this->$name))
|
|
||||||
{
|
|
||||||
// Call a singleton, if the get_instance method exists
|
|
||||||
if (method_exists($class, 'get_instance'))
|
|
||||||
{
|
|
||||||
return $this->$name =& $class::get_instance();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->$name = new $class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience function to remove an object from the singleton
|
* Convenience function to remove an object from the singleton
|
||||||
*
|
*
|
||||||
|
@ -110,6 +110,16 @@ class MM_Page extends MM_Output {
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* call the parent destructor
|
||||||
|
*/
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
parent::__destruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets server headers and doctype
|
* Sets server headers and doctype
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
* @package miniMVC
|
* @package miniMVC
|
||||||
* @subpackage Libraries
|
* @subpackage Libraries
|
||||||
*/
|
*/
|
||||||
class MM_Data_Store {
|
class Data_Store {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Settings object represented by the currently loaded JSON file
|
* Settings object represented by the currently loaded JSON file
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
* @package miniMVC
|
* @package miniMVC
|
||||||
* @subpackage Libraries
|
* @subpackage Libraries
|
||||||
*/
|
*/
|
||||||
class MM_Session {
|
class Session {
|
||||||
|
|
||||||
// Combine traits for more dynamic behavior
|
// Combine traits for more dynamic behavior
|
||||||
// but use Singleton for __invoke, so calling
|
// but use Singleton for __invoke, so calling
|
||||||
|
Loading…
Reference in New Issue
Block a user