Understanding Input controls: Constructor accepts 3 params: function __construct($name , $properties , $parent) $name = name of the input control. Eg. category_id $properties = width, label, type, etc $parent = Controller($this of the controller) function write() dumps the input control function custom() custom functions can be added which can be called through jquery/ajax requests for dynamism. URL structure for ajax requests: var url = class_name + '/input_gate/' + control_name + '/custom_function_name' BASIC INPUT CONTROL PROPERTIES: $this->name; //Field name of the control $this->properties; //Properties like input type, disabled, input label, remark, placeholder, etc $this->value; //Value in user input format $this->validation_error; //Validation error of input control $this->table; //database related to the controller(parent)