如何将片段加载到函数中以减少重复代码。
例如,如果我使用以下代码;
public function site()
{
$this->load->model('model_get');
$data["results"] = $this->model_get->getData(__FUNCTION__);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . __FUNCTION__, $data);
$this->load->view('view_footer');
}
我怎么能把它减少到像以下那样的东西:
public function site()
{
command $this->load->model('site_loader');
//Function specific code
}
使用site_loader.php:
$this->load->model('model_get');
$data["results"] = $this->model_get->getData(__FUNCTION__);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . __FUNCTION__, $data);
$this->load->view('view_footer');
基于totymedli建议的工作代码。
Controller
public function site()
{
$pagename = __FUNCTION__;
include 'resources/scripts/site_loader.php';
}
Site Loader
<?php
$this->load->model('model_get');
$data["results"] = $this->model_get->getData($pagename);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . $pagename, $data);
$this->load->view('view_footer');
?>
答案 0 :(得分:-1)
如果您真的想这样做,可以将该代码复制到PHP文件,而不是您需要的include文件。手册中有趣的部分:
当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。
您要包含的代码:
<?php
//site_loader.php
$this->load->model('model_get');
$data["results"] = $this->model_get->getData(__FUNCTION__);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . __FUNCTION__, $data);
$this->load->view('view_footer');
?>
控制器:
public function site()
{
include 'site_loader.php';
}
注意:还有require,require_once和include_once。选择最适合您项目的那个。 Help for the choice