Added reflection class
This commit is contained in:
parent
343d390377
commit
1f2cafdead
@ -23,4 +23,13 @@ class Welcome extends MM_Controller {
|
||||
|
||||
$this->output->set_output($output);
|
||||
}
|
||||
|
||||
function reflect()
|
||||
{
|
||||
$this->r = new R($this);
|
||||
|
||||
$obj = $this->r->get_all();
|
||||
|
||||
$this->output->set_output($this->__toString('print_r', $obj));
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
class Welcome_Model {
|
||||
class Welcome_Model extends MM_Model{
|
||||
|
||||
function __construct(){}
|
||||
}
|
@ -397,5 +397,6 @@ require_once('miniMVC.php');
|
||||
require_once('output.php');
|
||||
require_once('page.php');
|
||||
require_once('db.php');
|
||||
require_once('r.php');
|
||||
|
||||
// End of common.php
|
64
sys/r.php
Normal file
64
sys/r.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* MiniMVC
|
||||
*
|
||||
* Convention-based micro-framework for PHP
|
||||
*
|
||||
* @author Timothy J. Warren
|
||||
* @copyright Copyright (c) 2011 - 2012
|
||||
* @link https://github.com/timw4mail/miniMVC
|
||||
* @license http://philsturgeon.co.uk/code/dbad-license
|
||||
*/
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Class for examining other classes
|
||||
*
|
||||
* @extends ReflectionClass
|
||||
*/
|
||||
class R extends ReflectionClass {
|
||||
|
||||
public $methods, $properties, $doc_comments, $parent_class, $static_properties, $internal;
|
||||
|
||||
/**
|
||||
* ReflectionClass Constructor
|
||||
*
|
||||
* @param mixed $var
|
||||
*/
|
||||
public function __construct($var)
|
||||
{
|
||||
parent::__construct($var);
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempt to run static functions in non-static context
|
||||
*/
|
||||
public function __call($name, $args)
|
||||
{
|
||||
if(is_callable($this->$name))
|
||||
{
|
||||
//Add $this object to args
|
||||
array_push($args, $this);
|
||||
|
||||
//Call the dynamic function
|
||||
return call_user_func_array($this->$name, $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve as much information about the class as possible
|
||||
*/
|
||||
public function get_all()
|
||||
{
|
||||
$this->methods = $this->getMethods();
|
||||
$this->properties = $this->getProperties();
|
||||
$this->doc_comments = $this->getDocComment();
|
||||
$this->parent_class = $this->getParentClass();
|
||||
$this->static_properties = $this->getStaticProperties();
|
||||
$this->internal = (int)$this->isInternal();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user