總是想弄清楚從index到頁面顯示的所有流程,但是還是沒有搞清楚,現在卡在了set('date',$this->Post->findAll())這個語句,因為我不知道Post是如何出現的(我現在用官方的那個blog_tutorial來判斷流程),然後找到了controller的建構函式,之後就沒有發現如何裝載model類。
下面還是直接看tutorial,搞清楚Model View Controller三個類的一些API,能迅速開發,整個架構的原始碼還是以後再看吧。
下面是測試一下代碼框,就拿controller的建構函式吧
function __construct ()
{
if($this->name === null)
{
$r = null;
if (!preg_match('/(.*)Controller/i', get_class($this), $r))
{
die("Controller::__construct() : Can't get or parse my own class name, exiting.");
}
$this->name = $r[1];
}
if ($this->viewPath == null)
{
$this->viewPath = Inflector::underscore($this->name);
}
$this->modelClass = Inflector::singularize($this->name);
$this->modelKey = Inflector::underscore($this->modelClass);
if(!defined('AUTO_SESSION') || AUTO_SESSION == true)
{
$this->components[] = 'Session';
}
if (is_subclass_of($this, 'AppController'))
{
$appVars = get_class_vars('AppController');
foreach(array('components', 'helpers', 'uses') as $var)
{
if (isset($appVars[$var]) && !empty($appVars[$var]))
{
$diff = array_diff($appVars[$var], $this->{$var});
$this->{$var} = array_merge($this->{$var}, $diff);
}
}
}
if (!empty($this->components))
{
$component =& new Component($this);
}
parent::__construct();
}