من از يه فريم ورک شبيه به کيک استفاده مي کنم، همه درخواستها به صفحه index.php مي رن، از اونجا کنترلر، مدل و ساير کتابخانه ها رو اينکلود مي کنم. مشکلي که دارم اينه که وقتي توي کنترلر يه متد اينکلود مي کنم، توي اين متد نمي تونم از مدل يه شي بسازم و از مدل استفاده کنم. لطفا راهنمايي کنيد.
class Router
{
public $library;
public $model;
public $uri;
public function load_controller()
{
$controller_name = $this->uri['controller'];
$action = $this->uri['action'];
$param = $this->uri['param'];
$model = $this->uri['model'];
$file = ROOT.DS.'admin'.DS.'controller'.DS."$controller_na me".'_controller.php';
if(file_exists($file))
{
require_once($file) ;
$controller_name = ucwords($controller_name);
$controller = new $controller_name ;
if(method_exists($controller,$action))
{
$controller->{$action}($opt[0],$opt[1],$opt[2],$opt[3],
$opt[4],$opt[5],$opt[6],$opt[7]);
}
else
{
$controller->index();
}
}
else
{
require( '/404.php);
}
}
/*********************************
* Load Model
*********************************/
function model($model)
{
if(is_array($model))
{
array_map(array('Router','load_model'),$model);
}
else
{
$this->load_model($model);
}
}
private function load_model($model)
{
$file = ROOT.DS.'admin'.DS.'model'.DS.$model.'.php';
if(file_exists($file))
{
require_once($file) ;
$this->$model = new $model();
}
else
{
echo "NO";
}
}
فرض کنيد توي متد زیر
$controller->{$action}($opt[0],$opt[1],$opt[2],$opt[3],
$opt[4],$opt[5],$opt[6],$opt[7]);
(اين متد توسط کنترلر اينکلود مي شه)، بخوام از مدل استفاده کنم. براي اين منظور بايد چکار کنم؟