2017-12-18 12 views
1

私たちは通常、オブジェクトを使ってメソッドを呼び出しますが、ここではcodeigniterでは変数がメソッドを呼び出します。彼らはどのようにそれを設計しましたか?私はスーパーオブジェクトと呼ばれるものに出くわしました。どのようにオブジェクトを作りましたか。何らかの助けが得られました。内部アーキテクチャがどのように機能しているか知りたいと思います。 /system/core/Controller.php

$this->load->view(); //it loads view , how come $this->load an object here 
+0

すべてはCI_controllerから来ます –

+0

あなたはcodeigniterで 'library'を使うことでそれを達成できます。また、あなたが望むものを明確にしてくださいキエフ? –

+0

@Rajeevbbqq私は、codeigniterフレームワークが変数のメソッドをどのように呼び出すかを知ろうとしています。例えば$ this-> loadは可変であり、メソッドを呼び出します。どのようにそれらを実現しましたか?私は内部のメカニズムについて話しています –

答えて

1

移動し、あなたにも、この時にsystem/core/Loader.phpを見てください、あなたはこのような何か(->view()関連)

を見ることができ、それがすべてのトリガー

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'); 
} 

を得るライン、下に見ることができます

/** 
* 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)); 
} 
関連する問題