載入基本檔案
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 專案的入口檔案
$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載入流程
2 如果不是也會請求到那個檔案,所以web root就是入口檔案 入口檔案定義了全域性變數,定義了很多路徑相關的資訊,比如 web root css這裡實在是太多了 3 載入三個檔案 require cake basics.php require cake error ds exceptions.p...
爬蟲主要流程
第一種方法 response1 urllib2.urlopen url print response1.getcode 請求狀態碼 print len response1.read read爬取網頁資訊 print 第二種方法,新增頭部資訊,模擬瀏覽器訪問 request urllib2.reque...
滲透測試主要流程
和客戶進行溝通,做滲透測試的程度?為什麼要做滲透測試?做滲透測試中需要注意哪些避諱?客戶的業務主要是什麼?最關注什麼?測試範圍,哪些能測,哪些不能測?確定好測試的時間地點接待人等?免罪金牌 商量好出事故的責任承擔 收集所有的公開的資訊並且分析,查 ip?作業系統?指令碼語言?在該伺服器上有沒有其他的...