環境配置
Apache要開啟rewrite模塊即 :LoadModule rewrite_module modules/mod_rewrite.so
Zendframe work默認使用pdo連接數據庫,需開啟pdo和pdo_mysql(或其他數據庫)擴展入口文件目錄(下面即將要配置的public目錄)允許重寫 AllowOverride All
項目配置
是zendframe work主框架文件解壓壓縮包,并將解壓放到library目錄中得到目錄結構如下配置虛擬主機,其中public目錄為入口文件所在目錄(根目錄),為了安全此目錄設置為web跟目錄即可 /configs/application.ini為配置文件,可以配置錯誤信息以及數據庫配置
default為默認模塊
訪問 域名/index/index 會訪問到IndexController.php中的indexAction方法以及渲染views/scripts/index/index.phtml視圖
增加模塊
例如增加admin模塊,復制default文件夾重命名為admin 注意此時類名應這樣定義Admin_IndexController,即每個類名前加前綴Admin_,文件名不變. 如果要訪問admin模塊則訪問地址 域名/admin/index/index 應用 控制器中的 init()方法為初始化方法:執行任何一個方法前都將執行此方法. 因此可以在此做一些初始化以及權限的限制.
zf框架中的視圖文件默認不存在模板引擎,可以直接書寫html代碼或者php代碼
控制器中定義$this->view->user = '張三'; 那么在視圖中echo $this->user;即可輸出張三.
- $this->getHelper('ViewRenderer')->setNoRender();//不渲染默認視圖
- $this->render('index');//渲染自定義的視圖
- $request = $this->getRequest(); //獲取請求變量 post/get
- $request->getParams();//獲取所有請求的數據post/get
- $this->getRequest()->getParam('id');//根據指定的下標獲取對應數據
- $request->getPost(); //獲取所有post數據
- $request->isPost();//是否是post請求 返回true或false
數據庫的操作
不使用模型的情況:獲得db對象 $db = Zend_Registry::get('dbAdapter');//獲取注冊變量(設置的時候 通過Zend_Registry::set('dbAdapter',$dbAdapter);)參見Bootstrap.php
增加數據:
$data = array('uname' => 'zhangsan','stat' => 1,'account' => 10);
$db->insert('userinfo',$data); //這里的userinfo是表名
echo $db->lastinsertid(); //獲取最后自增id
刪除數據:
$db->delete('userinfo','id=2');
修改數據:
$db->update('userinfo',array('uname' => 'ijijij'),'id=5');
查詢數據:
$db->fetchAll("select * from userinfo");
建立模型,在application/default/models目錄下,一般文件名和表名相同首字母大寫例如Userinfo.php
模型內容
- class Userinfo extends Zend_Db_Table{
- protected $_name ="userinfo"; //可以重新定義表名
- protected $_primary = 'id'; //可以重新定義主鍵
- }
實例化模型$db = new Userinfo();
增加數據:
$data = array('uname' => 'rrrr','stat' => 44,'account' => 10);
$db->insert($data);
刪除數據:
$db->delete('id=5');
修改數據:
$db->update($data,'id=6');
查詢數據:
根據主鍵查詢$db->find(1);或者$db->find('1,2,3');
取多條數據
- $order = 'first_name';
- $count = 10; $offset = 20;
- $db->fetchAll($where, $order, $count, $offset);
- 取所有數據
- $db->fetchAll()->toArray();
- Zend文件緩存
- $frontendOptions = array(
- 'lifeTime' => 30, // 緩存生命期 單位 秒
- 'automatic_serialization' => true
- );
- $backendOptions = array(
- 'cache_dir' => APPLICATION_PATH . '/cache/' // 放緩存文件的目錄
- );
- // 取得一個Zend_Cache_Core 對象
- $cache = Zend_Cache::factory(
- 'Core',
- 'File',
- $frontendOptions,
- $backendOptions
- );
- echo '
- ';
- //先在緩存中查詢
- if(!$result = $cache->load('userinfo')) {
- $result = $this->db->fetchAll('select * from userinfo');
- //緩存的內容,名字
- $cache->save($result, 'userinfo');
- } else {
- echo "
- 此內容已生成緩存!!
- ";
- }
- //$cache->remove('userinfo'); //清空緩存
- print_r($result);
新聞熱點
疑難解答