Added Controller Abstract for multiple parent classes of controller
This commit is contained in:
parent
39d2982cf1
commit
f074bce545
|
@ -1,9 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Controller;
|
namespace Controller;
|
||||||
use \FuzeWorks\Bus;
|
use \FuzeWorks\Controller;
|
||||||
|
|
||||||
class Standard extends Bus {
|
class Standard extends Controller {
|
||||||
public function __construct(&$core) {
|
public function __construct(&$core) {
|
||||||
parent::__construct($core);
|
parent::__construct($core);
|
||||||
}
|
}
|
||||||
|
|
78
Core/System/class.abstract.controller.php
Normal file
78
Core/System/class.abstract.controller.php
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FuzeWorks;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for a Module that gives abstract Controller types
|
||||||
|
* A Controller server must contain the methods from this interface in order to correctly serve Controllers
|
||||||
|
*/
|
||||||
|
interface ControllerServer {
|
||||||
|
public function giveController($type);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstract class Controller
|
||||||
|
*
|
||||||
|
* Abstract for a Controller data representation, loads the correct parent type
|
||||||
|
*/
|
||||||
|
abstract class Controller extends Bus{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The parent class holder object
|
||||||
|
* Requests get redirected to this class
|
||||||
|
* @access private
|
||||||
|
* @var Parent Object
|
||||||
|
*/
|
||||||
|
private $parentClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs the class and Bus
|
||||||
|
* @access public
|
||||||
|
* @param Core Object, gets referenced
|
||||||
|
*/
|
||||||
|
public function __construct(&$core) {
|
||||||
|
parent::__construct($core);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the type of this Controller. Eg, use techfuze/databaseController and DatabaseController to get a SQL connected Controller
|
||||||
|
* @access protected
|
||||||
|
* @param String Module_name, the name of the module where the Controller can be found
|
||||||
|
* @param String Controller_type, Controller type to return
|
||||||
|
*/
|
||||||
|
protected function setType($module_name, $controller_type) {
|
||||||
|
$mod = $this->core->loadMod($module_name);
|
||||||
|
$this->parentClass = $mod->giveController($controller_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a value from the controller class
|
||||||
|
* @access public
|
||||||
|
* @param Any key
|
||||||
|
* @return Any value from the controller class
|
||||||
|
*/
|
||||||
|
public function __get($name) {
|
||||||
|
return $this->parentClass->$name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a value in the controller class
|
||||||
|
* @access public
|
||||||
|
* @param Any key
|
||||||
|
* @param Any value
|
||||||
|
*/
|
||||||
|
public function __set($name, $value) {
|
||||||
|
$this->parentClass->$name = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calls a function in the controller class
|
||||||
|
* @access public
|
||||||
|
* @param String function_name
|
||||||
|
* @param Array values
|
||||||
|
* @return Function return
|
||||||
|
*/
|
||||||
|
public function __call($name, $params) {
|
||||||
|
return call_user_func_array(array($this->parentClass, $name), $params);
|
||||||
|
}
|
||||||
|
}
|
|
@ -55,6 +55,7 @@ class Core {
|
||||||
require_once(FUZESYSPATH . "/class.abstract.event.php");
|
require_once(FUZESYSPATH . "/class.abstract.event.php");
|
||||||
require_once(FUZESYSPATH . "/class.abstract.module.php");
|
require_once(FUZESYSPATH . "/class.abstract.module.php");
|
||||||
require_once(FUZESYSPATH . "/class.abstract.model.php");
|
require_once(FUZESYSPATH . "/class.abstract.model.php");
|
||||||
|
require_once(FUZESYSPATH . "/class.abstract.controller.php");
|
||||||
require_once(FUZESYSPATH . "/class.abstract.eventPriority.php");
|
require_once(FUZESYSPATH . "/class.abstract.eventPriority.php");
|
||||||
|
|
||||||
// Load the core classes
|
// Load the core classes
|
||||||
|
|
Loading…
Reference in New Issue
Block a user