zf实战--(一)

27 篇文章 0 订阅
8 篇文章 0 订阅

练习用zf+smarty开发web项目。今天是第一颗。

再次应该对zf的一些常用对象有所了解,还有smarty。

 

一、首先构建环境

二、然后构建项目框架

三、建立配置文件

config.ini

 

[general]
db.adapter=PDO_MYSQL
db.config.host=localhost
db.config.username=root
db.config.password=123456
db.config.dbname=NetVideo

[smarty]
left_delimiter="<{"
right_delimiter="}>"
caching=0

[Format]
dateFormat=Y-m-d H:i:s

[cache]
cache.frontend.lifetime=15
cache.frontend.name=Core
cache.backend.name=File
cache.backend.cache_dir=D:/php/www/cache/
cache.frontend.automatic_serialization=true

 

resource.ini

 

[default]
index = default:index

 

IndexController.php

<?php
require_once 'Zend/Session/Namespace.php';
class IndexController extends Zend_Controller_Action

  
 public function init()
 { 
  $this->smarty=Zend_Registry::get('smarty');
  $this->config=Zend_Registry::get('config');
  $this->smarty->assign('baseUrl',$this->_request->getBaseUrl());
  
 }
 
 public function indexAction()
 {
  echo "中国您好!";
  $this->smarty->display('header.phtml'); 
  $this->smarty->display('index/index.phtml');
  $this->smarty->display('footer.phtml');
 }
 
 
}

 

模板文件略。

 

项目入口文件

index.php

 

<?php
 @header('Content-type:text/html;charset=UTF-8');
 //session_cache_limiter('private, must-revalidate');
 error_reporting(E_ALL|E_STRICT);
 date_default_timezone_set('Asia/Shanghai');
 define('ROOT_DIR', dirname(dirname(__FILE__))); //D:/php/www
 define('WEB_ROOT', 'http://localhost:8080/blog/');
 define('CACHE_DIR', 'D:/php/www/blog/cache/');
 define('TABLE_PRE','oophp_');
  
 set_include_path('.'.PATH_SEPARATOR.'./library'.PATH_SEPARATOR.'./application/models/'.PATH_SEPARATOR.get_include_path());
 
 //Register the autoloader(设置Zend Framework 自动载入类文件)
 require_once 'Zend/Loader.php';
 Zend_Loader::registerAutoload();
 Zend_Session::start();
 //配置数据库参数,并连接数据库
 $config=new Zend_Config_Ini('./application/config/config.ini',null, true);
 Zend_Registry::set('config',$config);
 $dbAdapter=Zend_Db::factory($config->general->db->adapter,$config->general->db->config->toArray());
 $dbAdapter->query('SET NAMES UTF8');
 Zend_Db_Table::setDefaultAdapter($dbAdapter);
 Zend_Registry::set('dbAdapter',$dbAdapter);
 //config smarty
 //$smartyParams=new Zend_Config_Ini('./application/config/config.ini','smarty');
 $smarty=new Custom_View_Smarty($config->smarty->toarray());
 Zend_Registry::set('smarty',$smarty);
 //zend cache
 require_once 'Zend/Cache.php';
 /*建立cache对象*/
 $frontendOptions = $config->cache->cache->frontend->toArray();
 $backendOptions = $config->cache->cache->backend->toArray();
 $frontendName = $frontendOptions['name'];
 unset($frontendOptions['name']);
 $backendName = $backendOptions['name'];      
 unset($backendOptions['name']);
 if (empty($backendOptions['cache_dir']))
 {
  $backendOptions['cache_dir'] = CACHE_DIR;
 }  
 $cache = Zend_Cache::factory($frontendName, $backendName, $frontendOptions, $backendOptions);
 Zend_Registry::set('cache',$cache);
 
 /*
 $view = new Zend_View();
 Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')
 ->setView($view);*/
 //create auth object
 $auth=Zend_Auth::getInstance();
 //create acl object
 $acl=new Custom_KenAcl();

 $frontController = Zend_Controller_Front::getInstance();
 $frontController->addModuleDirectory('./application/modules')
                //->setRouter($router)
                ->registerPlugin(new Custom_Controller_Plugin_Smarty())
                ->setBaseUrl('/blog')
                ->setParam('useDefaultControllerAlways', true)
                ->setParam('noViewRenderer', true)
                ->setParam('noErrorHandler', true)
                ->setParam('useDefaultControllerAlways', true)
             ->registerPlugin(new Custom_Controller_Plugin_KenAuth($auth, $acl));
 //Zend_Debug::dump($frontController->getParams(), $label=null, $echo=true);
 $frontController->throwExceptions(true);
 $frontController->dispatch();

 

ok,项目可以显示了。

然后就可以做更多的练习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值