Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用模板系统时的Codeigniter性能_Php_Performance_Codeigniter_Templates - Fatal编程技术网

Php 使用模板系统时的Codeigniter性能

Php 使用模板系统时的Codeigniter性能,php,performance,codeigniter,templates,Php,Performance,Codeigniter,Templates,我对使用CI还是相当陌生,但我一直在为它构建一个模块化模板系统,我想我已经掌握了它的基本知识。我的问题是,当我使用模板系统时,加载时间似乎很明显。我很好奇这是否普遍,或者我是否做错了什么。我知道页面加载时间有很多可变因素,我的网站生活在一个VPS上,所以也可能是我和谁共享资源都是一个吸食者。是否有精通CI的人可以查看我的代码,看看我是否可以在不牺牲模块化结构的情况下加快加载速度 谢谢 routes.php $route['default_controller'] = 'pages/load/h

我对使用CI还是相当陌生,但我一直在为它构建一个模块化模板系统,我想我已经掌握了它的基本知识。我的问题是,当我使用模板系统时,加载时间似乎很明显。我很好奇这是否普遍,或者我是否做错了什么。我知道页面加载时间有很多可变因素,我的网站生活在一个VPS上,所以也可能是我和谁共享资源都是一个吸食者。是否有精通CI的人可以查看我的代码,看看我是否可以在不牺牲模块化结构的情况下加快加载速度

谢谢

routes.php

 $route['default_controller'] = 'pages/load/home';
 $route['test/(:any)'] = 'sandbox/load/$1';
 $route['(:any)'] = 'pages/load/$1';
 $route['404_override'] = '';
pages.php

class Pages extends CI_Controller {

public function __construct() {
    parent::__construct();
    $this->load->model('menulinks_model');
}

public function load($what = 'home'){// Default load
    $array = array();
    //Make sure content exists
    if (!file_exists('application/views/content/'.$what.'.php')){
        // Whoops, we don't have a page for that!
        $page_content = "The page you are looking for does not exist (ERROR 404)";
    }else {
        //Get menu data
        $array['menulinks'] = $this->menulinks_model->getAllMenuLinks();

        //Get page content
        $page_content = $this->load->view('content/'.$what,$array,TRUE);
    }

    //Build Page
    $data = array();
    $data['head'] = $this->load->view('templates/headplate',$array,TRUE);
    $data['scripts'] = $this->load->view('templates/scriptplate',$array,TRUE);
    $data['content'] = $page_content;
    $data['footer'] = $this->load->view('templates/footplate',$array,TRUE);

    //Render page
    $this->load->view('templates/siteplate', $data);
}

我认为构建模板系统的方式不是最好的方式。 尝试使用codeigniter帮助器来创建模板系统,这样会更好、更优化。 例如,在codeigniter帮助程序中,使用template_helper的名称创建一个帮助程序 以及帮助器为以下各项创建函数的内部: 听者模板,左模板,右模板内容模板,页脚模板

例如:

if(!function_existe('header_template'))
{
    //you can pass as many parameters as you want or without parameters.
    function header_template($var1,$var2)
    {
         $data = array();
         $data['var1'] = $var1;
         $data['var2'] = $var2;
         //your header view
         $this->laod->view('template/header',$data);
    }
}
在构造函数的控制器中加载模板助手,然后 调用这些函数。页眉模板、页脚模板等。。。
我希望这能解决您的问题

模板是什么样子的?比如说,里面有很多重物或DB交互作用吗?另外,请看一看内置的探查器类,以帮助您确定发生减速的地方在另一个函数中包装对view()的调用有什么好处?