Time of Update: 2017-02-15
資料緩衝即儲存一些 PHP 變數到緩衝中,以後再從緩衝中取出來。出於此目的,緩衝組件的基類 CCache 提供了兩個最常用的方法: set() 和 get()。要在緩衝中儲存一個變數 $value ,我們選擇一個唯一 ID 並調用 set() 儲存它:Yii::app()->cache->set($id, $value);緩衝的資料將一直留在緩衝中,除非它由於某些緩衝策略(例如緩衝空間已滿,舊的資料被刪除)而被清除。 要改變這種行為,我們可以在調用 set()
Time of Update: 2017-02-15
緩衝是提升Web應用效能的簡便有效方式。通過將相對靜態資料存放區到緩衝並在收到請求時取回緩衝,我們便節省了產生這些資料所需的時間。在 Yii 中使用緩衝主要包括配置並訪問一個應用組件。 下面的應用配置設定了一個使用兩個 memcache 快取服務器的緩衝組件。array( ...... 'components'=>array( ...... 'cache'=>array(
Time of Update: 2017-02-15
注意: yii從版本1.1.6以後才開始支援資料庫遷移特性。和源碼一樣,資料庫的結構也隨著我們開發和維護資料庫驅動應用而不斷壯大.例如,在開發期間,我們可能想要添加一個新的表; 或者在應用投入生產期以後,我們可能會意識到需要在某個列上添加索引.
Time of Update: 2017-02-15
我們已經瞭解了怎樣使用 Active Record (AR) 從單個資料表中擷取資料。 在本節中,我們講解怎樣使用 AR 串連多個相關資料表並取回關聯(join)後的資料集。為了使用關係型 AR,我們建議在需要關聯的表中定義主鍵-外鍵約束。這些約束可以協助保證相關資料的一致性和完整性。為簡單起見,我們使用如下所示的實體-關係(ER)圖中的資料結構示範此節中的例子。資訊: 對外鍵約束的支援在不同的 DBMS 中是不一樣的。 SQLite < 3.6.19
Time of Update: 2017-02-13
Data Access Objects(DAO) 對訪問儲存在不同資料庫管理系統(DBMS)中的資料提供了一個通用的API。 因此,在將底層 DBMS 更換為另一個時,無需修改使用了 DAO 訪問資料的代碼。 Yii DAO 基於 PHP Data Objects (PDO) 構建。它是一個為眾多流行的DBMS提供統一資料訪問的擴充,這些 DBMS 包括 MySQL, PostgreSQL 等等。因此,要使用 Yii DAO,PDO 擴充和特定的 PDO 資料庫驅動(例如 PDO_MYSQL)
Time of Update: 2017-02-13
當建立 HTML 表單時,經常我們發現我們在寫很多重複而且在不同項目中很難重用的視圖代碼。 例如,對於每個輸入框, 我們需要以一個文字標籤和顯示可能的驗證錯誤來關聯它。 為了改善這些代碼的重用性,我們可以使用自版本 1.1.0 可用的表單產生器特徵。1. 基本概念Yii 表單產生器使用 CForm 對象來代表描述一個HTML表單所需的內容,包括哪些資料模型關聯到此表單, 表單中有哪些輸入框,以及如何渲染整個表單。開發人員主要需要建立和配置這個 CForm
Time of Update: 2017-02-13
有時我們想通過批量模式收集使用者輸入。也就是說, 使用者可以為多個模型執行個體輸入資訊並將它們一次性提交。 我們將此稱為 表格輸入(tabular input) ,因為這些輸入項通常以 HTML 表格的形式呈現。要使用表格輸入,我們首先需要建立或填充一個模型執行個體數組,取決於我們是想插入還是更新資料。 然後我們從 $_POST 變數中提取使用者輸入的資料並將其賦值到每個模型。和單模型輸入稍有不同的一點就是: 我們要使用 $_POST['ModelClass'][$i]
Time of Update: 2017-02-13
編寫 login 視圖是很簡單的,我們以一個 form 標記開始,它的 action 屬性應該是前面講述的 login 動作的URL。 然後我們需要為 LoginForm 類中聲明的屬性插入標籤和表單域。最後, 我們插入一個可由使用者點擊提交此表單的提交按鈕。所有這些都可以用純HTML程式碼完成。Yii 提供了幾個助手(helper)類簡化視圖編寫。例如, 要建立一個文本輸入欄位,我們可以調用 CHtml::textField(); 要建立一個下拉式清單,則調用
Time of Update: 2017-02-13
有了模型,我們就可以開始編寫用於操作此模型的邏輯了。 我們將此邏輯放在一個控制器的動作中。對登入表單的例子來講,相應的代碼就是:public function actionLogin(){ $model=new LoginForm; if(isset($_POST['LoginForm'])) { // 收集使用者輸入的資料 $model->attributes=$_POST['LoginForm'];
Time of Update: 2017-02-13
在編寫表單所需的 HTML 程式碼之前,我們應該先確定來自終端使用者輸入的資料的類型,以及這些資料應符合什麼樣的規則。 模型類可用於記錄這些資訊。 正如模型章節所定義的, 模型是儲存使用者輸入和驗證這些輸入的中心位置。取決於使用使用者所輸入資料的方式,我們可以建立兩種類型的模型。 如果使用者輸入被收集、使用然後丟棄,我們應該建立一個 表單模型; 如果使用者的輸入被收集後要儲存到資料庫,我們應使用一個 Active Record 。 兩種類型的模型共用同樣的基類 CModel
Time of Update: 2017-02-13
通過HTML表單收集使用者資料是Web程式開發的主要工作之一。除了表單設計外, 開發人員還需要將現存的或預設的資料填充到表單,驗證使用者輸入, 對無效的輸入顯示適當的錯誤資訊,儲存輸入到持久性儲存空間。Yii通過其 MVC 結構極大地簡化了此工作流程。在 Yii
Time of Update: 2017-02-13
儘管模型——視圖——控制器 (MVC) 被幾乎每一個Web開發人員所熟知,但是在實際應用開發中如何合理使用MVC依然困擾著許多人。MC背後的核心思想是代碼的可重用性以及邏輯與視圖的分離。 在本節中, 我們將會講述在使用Yii架構的過程中如何更好的使用MVC開發應用。為了更好進行解釋闡述,我們假設Web應用程式套件含了如下的一些子應用:前端:
Time of Update: 2017-02-13
介紹過 Yii 中的基本概念之後,我們現在講解使用 Yii 開發Web應用時的一般開發流程。 此處的開發流程假設我們已經完成了對應用的需求分析和必要的設計分析。建立目錄結構骨架。建立第一個Web應用 中講到的 yiic工具可以快速實現此步驟。配置此 應用。這是通過修改應用設定檔實現的。 此步驟可能也需要編寫一些應用組件(例如使用者組件)。為所管理的每個類型的資料建立一個 模型 類。 Creating First Yii Application 和 Automatic Code
Time of Update: 2017-02-11
Yii 應用建立於組件之上。組件是 CComponent 或其子類的執行個體。使用組件主要涉及訪問它的屬性以及觸發或處理它的時間。 基類 CComponent 指定了如何定義屬性和事件。1. 組件屬性組件的屬性就像對象的公用成員變數。它是可讀寫的。例如:$width=$component->textWidth; // 擷取 textWidth 屬性$component->enableCaching=true; // 設定 enableCaching
Time of Update: 2017-02-10
這篇文章主要介紹了PHP實現移除數組中為空白或為某值元素的方法,涉及php使用array_filter過濾數組的相關操作技巧,需要的朋友可以參考下本文執行個體講述了PHP實現移除數組中為空白或為某值元素的方法。分享給大家供大家參考,具體如下:在實現移除數組中項目為空白的元素或為某值的元素時用到了兩個函數 array_filter、create_function先看一個執行個體:$array = Array ( [0] => 1 ,[1] => 2, [2] => 3, [3]
Time of Update: 2017-02-10
本文介紹了PHP開發中遇到的數組問題,小編在這裡給大家總結了5中方法關於php判斷數組是否為空白問題,需要的朋友參考下本文介紹了PHP開發中遇到的數組問題,這裡介紹了判斷PHP數組為空白的5種方法,有需要的朋友可以借鑒參考一下。1. isset功能:判斷變數是否被初始化說明:它並不會判斷變數是否為空白,並且可以用來判斷數組中元素是否被定義過注意:當使用isset來判斷數組元素是否被初始化過時,它的效率比array_key_exists高4倍左右<?php$a =
Time of Update: 2017-02-10
本文介紹了PHP圖片裁剪與縮放樣本,廢話不多少,具體代碼如下:/* *exif_imagetype -- 判斷一個映像的類型 *功能說明:函數功能是把一個映像裁剪為任意大小的映像,並保持映像不變形 *參數說明:輸入 需要處理圖片的 檔案名稱,產生新圖片的儲存檔案名稱,產生新圖片的寬,產生新圖片的高 */ // 獲得任意大小映像,不足地方展開,不產生變形,不留下空白 function image_resize($src_file, $dst_file, $new_width,
Time of Update: 2017-02-10
設定宿主環境現在你已經瞭解了PHPAPI的世界, 並可以使用zval以及語言內部擴充機制執行很多工作了, 是時候轉移目標用它做它最擅長的事情了: 解釋指令碼代碼.嵌入式SAPI回顧介紹中, php構建了一個層級系統. 最高層是提供使用者空間函數和類庫的所有擴充. 同時, 其下是服務API(SAPI)層, 它扮演了webserver(比如apache, iis以及命令列介面cli)的介面.在這許多sapi實現中有一個特殊的sapi就是嵌入式sapi. 當這個sapi實現被構建時,
Time of Update: 2017-02-09
傳回值使用者空間函數利用return關鍵字向它的調用空間回傳資訊, 這一點和C語言的文法相同.例如:function sample_long() { return 42; } $bar = sample_long();當sample_long()被調用時, 返回42並設定到$bar變數中. 在C語言中的等價代碼如下:int sample_long(void) { return 42; } void main(void) { int bar = sample_long()
Time of Update: 2017-02-09
你的第一個擴充每一個php擴充的構建至少需要兩個檔案: 一個configuration檔案, 它告訴編譯期要構建哪些檔案以及需要什麼外部的庫, 還需要至少一個源檔案, 它執行實際的工作.剖析擴充實際上, 通常會有第二個或第三個設定檔, 以及一個或多個標頭檔. 對於你的第一個擴充, 你需要添加每種類型的一個檔案並使用它們工作.設定檔要開始了, 首先在你的php原始碼分類樹的ext/目錄下建立名為sample的目錄. 實際上這個新的目錄可以放在任何地方,