Codeigniter $ this-> load-> any_method()如何工作?

问题描述 投票:1回答:1

我们通常使用一个对象调用一个方法,但是在codeigniter中一个变量调用方法。他们是如何设计的?我遇到了一个叫做超级对象的东西,他们是怎么做出这样一个对象的。任何帮助都是有用的。我想知道内部架构是如何工作的。

$this->load->view(); //it loads view , how come $this->load an object here
php codeigniter
1个回答
2
投票

导航到/system/core/Controller.php,你可以看到下面的行,它们都获得了触发器

public function __construct()
{
    self::$instance =& $this;

    foreach (is_loaded() as $var => $class)
    {
        $this->$var =& load_class($class);
    }

    $this->load =& load_class('Loader', 'core');
    $this->load->initialize();
    log_message('info', 'Controller Class Initialized');
}

看看这个以及system/core/Loader.php,你可以看到这样的东西(相关的->view()

/**
 * View Loader
 *
 * Loads "view" files.
 *
 * @param   string  $view   View name
 * @param   array   $vars   An associative array of data
 *              to be extracted for use in the view
 * @param   bool    $return Whether to return the view output
 *              or leave it to the Output class
 * @return  object|string
 */
public function view($view, $vars = array(), $return = FALSE)
{
    return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
© www.soinside.com 2019 - 2024. All rights reserved.