Category Archives: ZendFramework

[ZF]Zend_Db_Table

Zend Framework 中的 Zend_Db 可以針對資料庫操作,而 Zend_DB_Table 底下繼承了許多像 Zend_Db_Select 之類的物件提供一些函式幫你組合 SQL query 和存取 DB

範例 1.產生 DB Adapter

2.組合 Query String

3.執行 Query String

Continue Reading

[ZF]View Helper – Partial

一般在操作 View 時,可能會有一些重複的結構需要render,這種狀況可以透過 View Helper 的 Partial 處理

使用方法 template.phtml (Partial 預設路徑會是在 application/views/scripts)

View

加入參數 template.phtml

View

迴圈 template.phtml

View

Continue Reading

[ZF]Zend DB Adapter

在 Zend 當中,除了可以使用 Zend_Db::factory 建立 DB Adapter 之外,也可以直接將設定檔寫在 application.ini 中直接使用

application.ini

controller

Continue Reading

[ZF]建立Database Table Model

在ZendFramework中,可以將每張資料表的控制寫成Model,這樣的好處是可以讓Controller更為乾淨,也可以避免直接撰寫sql語法

如果透過zf tools建立整個流程會方便許多,以下範例皆是利用zf tools建立

0.資料庫schema及預設資料

1.資料庫設定 利用zf tools建立

完成後應該可以看到application/configs/application.ini

2.建立Table物件 利用zf tools建立

如果成功在application/models/DbTable會建立出一個Admin.php,並會有以下內容

3.建立Table Row Model 利用zf tools建立

成功的話路徑會是application/models/AdminRow.php,Row Model主要定義Row的資料和控制方法

4.建立Table Mapper 利用zf tools建立

成功的話路徑會是application/models/AdminMapper.php 在開發時主要使用此物件操作資料表,因此這個物件的方法就是隨著操作資料庫的需求自行撰寫

5.測試 在Controller中就可以測試是否成功連結

Continue Reading

[ZF]Zend_Auth

Zend_Auth主要用來認證身份,Zend_Auth可以經由authenticate方法傳入特定的Auth Adapter(例如Zend_Auth_Adapter_Ldap或Zend_Auth_Adapter_DbTable),以便控制與哪方面的身份資料介接

LDAP Auth

application.ini(只列出LDAP設定檔部份)

LoginController.php

IndexController

注意,因為Zend_Auth只用來做身份認證,所以如果要取得LDAP裡的其他資訊,請使用Zend_Ldap

DB Auth

application.ini

controller

Continue Reading

[ZF]Zend_Log

Zend有提供一個專門紀錄Log的物件:Zend_Log,以下為Zend_Log定義的Log類型

Zend_log寫入檔案

fopen檔案,修改檔案開啟權限

將Log寫入資料庫

Continue Reading

[ZF]Zend Bootstrap機制

在Zend的Bootstrap中,會自動執行_init開頭的function

Bootstrap也可以回傳參數,上段程式碼中的_initTest2 return一組字串,在Controller中可以透過getInvokeArg存取

Continue Reading

[ZF]Zend Framework v1 Autoloader

Zend Framework的Autoloader是一個很棒的設計,它可以自動幫你載入相關名稱的class,Zend Framework 會按照 PEAR 命名方法來載入類別(Xxx/Yyy/Zzz.php 對應 class Xxx_Yyy_Zzz 這個類別)

一般類別載入 例如: library/Test/Hello/Morning.php

可以在Controller中新增namespace

如果專案是使用ZF tools產生的話,可以直接在application/configs/application.ini中加入:

Controller就可以直接使用

資源類別載入 資源類別是指Model、Form等常用類別,在用ZF tools建立的專案中,主要由Zend_Application_Module_Autoloader處理。 在ZF tools建立的專案中,application/configs/application.ini裡預設的appnamespace是Application,所以使用zf指令建立時,會按照namespace產生,例如:

Zend_Application_Module_Autoloader預設已經有先建立幾個預設的對應路徑(不需任何設定就會自動載入)

資源名稱 對應路徑 Model_DbTable models/DbTable Model_Mapper models/mappers Form forms Model models Plugin plugins Service services View_Helper views/helpers View_Filter views/filters

如果是使用手動建立ZendFramework的目錄,就必須在public/index.php中自行設定Zend_Loader_Autoloader_Resource

namespace載入 也可以使用namespace autoloader

架構

Morning.php

Controller

Continue Reading