Cakephp 执行主要流程
Cakephp执行主要流程,学习cakephp的朋友可以参考下。
加载基本文件
cake/basics.php 里面定义了常用的方法以及时间常量
$TIME_START = getMicrotime(); 记录开始执行时间
cake/config/paths.php 里面定义一些基本路径
cake/lib/object.php cake的基本类
cake/lib/inflector.php 这里主要是处理单复数,带下划开命名以及驼峰式命名
cake/lib/configure.php 里面提供文件配置的读写,路径的设置,以及加载文件的方法
cake/lib/cache.php 缓存的操作
Configure::getInstance(); 开始对项目的配置
config/core.php 项目的配置文件
config/bootstrap.php 项目的入口文件
App::import(‘Core', array(‘Dispatcher')); 加载核心,开始做正事了,GO
$Dispatcher = new Dispatcher();
$Dispatcher->dispatch($url); 开始执行,通过对当前的url解析,如果你设置了压缩Js、Css,则对这些文件压缩输出,如果你对页面设置缓存,则直接输出缓存页面,最后查找相应的Controller。如果找不到,则进行相应的错误处理。
实例化当前Controller,确定视图路径,实例化Component,获得仅当前Controller[不包含父类Controller]的方法
对当前Controller中私有方法、带admin路由或者带prefix的方法进行保护,不允许直接访问
设置当前Controller的基本属性,如base、here、webroot、plugin、params、action、 passedArgs[array_merge($this->params['pass'],$this->params['named'])]
调用Controller中的constructClasses方法
执行__mergeVars方法,该方法对父子类的components、helpers、uses等属性进行特殊合并处理
调用Component->init()方法,载入用户设置的系列components(Session为默认),并默认enabled属性为true。(该属性可以后期在beforeFilter里修改)
调用Component->initialize()方法,若系列components里有这个initialize方法并且该component 的enabled为true,则调用该components->initialize方法(这里enabled用户好像无法通过 Controller设置,只能为true)
调用当前Controller中beforeFilter()方法,这个方法是个好东西^_^
调用Component->startup()方法,同样,若系列components里有这个startup方法并且该component的 enabled为true,则调用该components->startup方法(这里enabled倒是可以通过beforeFilter设 置),该方法也是components里最重要的方法,比如Auth就在这里大作文章^_^
开始执行当前Controller里的Action方法
如果设置autoRender为true,则根据调用当前Controller的render()方法,否则返回或输出Action方法的返回的数据
调用Controller的render()方法时,先调用当前Controller中的beforeRender()方法
加载视图渲染类
调用Component->beforeRender()方法,同样,若系列components里有这个beforeRender方法并且该 component的enabled为true,则调用该components->beforeRender方法(这里enabled可以通过 beforeFilter设置)
获取当前Model的数据验证错误信息,给View使用
调用View的render()方法
载入相关Helper助手
调用Helper的beforeRender()方法
调用Helper的afterRender()方法
相关的缓存处理
执行renderLayout()方法,当然前提你要允许渲染布局,默认为default.ctp布局文件
调用Helper的beforeLayout()方法
调用Helper的afterLayout()方法
调用Component->shutdown()方法,同样,若系列components里有这个shutdown方法并且该component的 enabled为true,则调用该components->shutdown方法(这里enabled可以通过beforeFilter设置)
执行当前Controller里的afterFilter方法,这里你可以对视图的输出内容($controller->output)做一些处理
返回或输出视图数据。
流程完毕。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

CakePHP是一個開源的Web應用程式框架,它基於PHP語言構建,可以簡化Web應用程式的開發過程。在CakePHP中,處理文件上傳是常見的需求,無論是上傳頭像、圖片或文檔,都需要在程式中實現對應的功能。本文將介紹CakePHP中如何處理文件上傳的方法和一些注意事項。在Controller中處理上傳檔案在CakePHP中,上傳檔案的處理通常在Cont

登入 CakePHP 是一項非常簡單的任務。您只需使用一項功能即可。您可以記錄任何後台程序(如 cronjob)的錯誤、異常、使用者活動、使用者採取的操作。在 CakePHP 中記錄資料很容易。提供了 log() 函數

隨著行動互聯網的普及,今日頭條已成為我國最受歡迎的新聞資訊平台之一。許多用戶希望在頭條平台上擁有多個帳號,以滿足不同的需求。那麼,如何開立多個頭條帳號呢?本文將詳細介紹開設多個頭條帳號的方法和申請流程。一、怎麼開多個頭條帳號?開設多個頭條帳號的方法如下:在頭條平台上,用戶可以透過不同的手機號碼註冊帳號。每個手機號只能註冊一個頭條帳號,這表示用戶可以利用多個手機號註冊多個帳號。 2.郵箱註冊:使用不同的郵箱地址註冊頭條帳號。與手機號碼註冊類似,每個郵箱地址也可以註冊一個頭條帳號。 3.第三方帳號登入

CakePHP是一種非常流行的PHP框架,它提供了許多方便的方法來進行Web應用程式的開發。當我們需要在應用程式中產生PDF檔案時,TCPDF是一種非常常用的PDF生成庫。這篇文章將會介紹如何在CakePHP中使用TCPDF。安裝TCPDF首先,我們需要將TCPDF安裝在我們的CakePHP專案中。這可以透過幾種方式來完成,例如手動將TCPDF複製到專案的v
