首頁 後端開發 php教程 cakephp Cakephp 執行主要流程

cakephp Cakephp 執行主要流程

Jul 29, 2016 am 08:42 AM
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)做一些處理
返回或輸出視圖資料。
流程完畢。

以上就介紹了cakephp Cakephp 執行主要流程,包含了cakephp的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

在本章中,我們將了解CakePHP中的環境變數、常規配置、資料庫配置和電子郵件配置。

CakePHP 使用資料庫 CakePHP 使用資料庫 Sep 10, 2024 pm 05:25 PM

在 CakePHP 中使用資料庫非常容易。本章我們將了解CRUD(建立、讀取、更新、刪除)操作。

如何使用CakePHP中的資料庫查詢建構器? 如何使用CakePHP中的資料庫查詢建構器? Jun 04, 2023 am 09:02 AM

CakePHP是一個開源的PHPMVC框架,它廣泛用於Web應用程式的開發。 CakePHP具有許多功能和工具,其中包括一個強大的資料庫查詢建構器,用於互動效能資料庫。此查詢建構器可讓您使用物件導向的語法執行SQL查詢,而不必編寫繁瑣的SQL語句。本文將介紹如何使用CakePHP中的資料庫查詢建構器。建立資料庫連線在使用資料庫查詢建構器之前,您首先需要在Ca

如何在CakePHP中建立自訂分頁? 如何在CakePHP中建立自訂分頁? Jun 04, 2023 am 08:32 AM

CakePHP是一個強大的PHP框架,為開發人員提供了許多有用的工具和功能。其中之一是分頁,它可以幫助我們將大量資料分成幾頁,從而簡化瀏覽和操作。預設情況下,CakePHP提供了一些基本的分頁方法,但有時你可能需要建立一些自訂的分頁方法。這篇文章將向您展示如何在CakePHP中建立自訂分頁。步驟1:建立自訂分頁類別首先,我們需要建立一個自訂分頁類別。這個

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

CakePHP 建立驗證器 CakePHP 建立驗證器 Sep 10, 2024 pm 05:26 PM

可以透過在控制器中新增以下兩行來建立驗證器。

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

為了在 cakephp4 中處理日期和時間,我們將使用可用的 FrozenTime 類別。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我們將學習以下與路由相關的主題?

See all articles