最近看的项目cakephp

总是想弄清楚从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();             
    }

你可能感兴趣的:(cakephp)