ZendFramework的index入口文件
广告投放★自助友情CMS落伍广告联盟晒乐广告联盟脉动广告联盟品味广告联盟
广告位可自定样式联系QQ:4285248个文字广告月20元广告联系QQ:428524广告位可自定样式
8个文字广告月20元黄金广告位每月20元广告位可自定样式联系QQ:428524广告位可自定样式
左旋肉碱、全国包邮
买二送一、无效退款

文章浏览→编程相关Mysql→ZendFramework的index入口文件

ZendFramework的index入口文件
ZendFramework的index入口文件

根据网上流行的index配置,总结而成.

实际应用当中,有很多问题.例如多模板.多数据库.共享zend,smarty,fckeditor等等之类的库.

加入缓存,异常处理,日志记录,权限管理.

我感觉zendframe太全了.有点过分了.在这个index中我使用的只是controller,用来控制项目的结构.所以可以适当的为zf减减肥.把没用的类删掉.别忘了看一下zf的文件依赖.别删错了..

Zf在index加载了大量的东西,如果不是每个控制都使用的话,最好还是不在index加载比较好.zf太浪费资源了.

这个index当然只是zf一个项目的入口,还有很多的结构和代码都没有给出,如有需要请见http://blog.csdn.net/mayongzhan/中其他文章.

正题:

<?php

header("Content-type: text/html;charset=utf-8");
session_start();

define('CONFIG_INI', 'conf/config.ini');
define('CONTROLLER_DIR', 'app/controller/');

define('LOG_DIR', 'log/');
define('TMP_DIR', 'tmp/');
define('WWW_DIR', 'www/');

define('LIB_DIR', 'lib/');
define('OTHER_CLASS_DIR', 'lib/class/');
define('OTHER_FUNC_DIR', 'lib/func/');
define('ZEND_DIR', 'lib/Zend/');
define('SMARTY_DIR', 'lib/Smarty/');
define('FCKEDITOR_DIR', 'lib/FCKeditor/');
define('MODELS_DIR', 'app/model/');

//Notice: PATH_SEPARATOR = win ; *nix :
set_include_path(get_include_path() . PATH_SEPARATOR .
    LIB_DIR .PATH_SEPARATOR .
   OTHER_CLASS_DIR . PATH_SEPARATOR .
   OTHER_FUNC_DIR . PATH_SEPARATOR .
    ZEND_DIR .PATH_SEPARATOR .
    SMARTY_DIR .PATH_SEPARATOR .
   FCKEDITOR_DIR . PATH_SEPARATOR .
   MODELS_DIR);

//OFF error_report
//error_reporting(0);
//ON error_report
error_reporting(E_ALL);

//设置超时
set_time_limit(0);

//设置时区
date_default_timezone_set('Asia/Shanghai');
//date_default_timezone_set('UTC');

//加载类文件
require_once('Loader.php');
require_once('Smarty.class.php');

//当加载一个未声明的类或未找到该类时,自动加载以下这个类
//Zend_Loader::registerAutoload();

//加载类
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Controller_Front');

//加载配置
if (file_exists(CONFIG_INI)) {
 $config = parse_ini_file(CONFIG_INI, true);
}
else {
 die('can\'t read config.ini');
}

//DB配置
$params = array ('host' =>$config['DB']['host'],
                'username' => $config['DB']['uname'],
                'password' => $config['DB']['upassword'],
                'dbname' => $config['DB']['name'],
                'port' => $config['DB']['port']);
$db = Zend_Db::factory($config['DB']['type'], $params);
//如果MySQL数据库版本小于4.1,注释下行
$db->query("SET NAMES".$config['DB']['charset']);
//注册db
Zend_Registry::set('db', $db);

//Smarty配置
$smarty = new Smarty();
$smarty->compile_dir  =$config['Smarty']['compile_dir'];
$smarty->cache_dir =$config['Smarty']['cache_dir'];
$smarty->template_dir =$config['Smarty']['template_dir'];
$smarty->left_delimiter =$config['Smarty']['left_delimiter'];
$smarty->right_delimiter =$config['Smarty']['right_delimiter'];
$smarty->caching =$config['Smarty']['caching'];
Zend_Registry::set('smarty', $smarty);

//注册其他配置
Zend_Registry::set('LOG_DIR', LOG_DIR);
Zend_Registry::set('TMP_DIR', TMP_DIR);
Zend_Registry::set('WWW_DIR', WWW_DIR);

//前端控制
$front = Zend_Controller_Front::getInstance();
//ErrorHandler plugin:
$front->setParam('noErrorHandler', true);
//ViewRenderer helper:
$front->setParam('noViewRenderer', true);
//无法找到controller时使用默认的
$front->setParam('useDefaultControllerAlways',true);
//抛出异常
$front->throwExceptions(true);
//设置控制层目录
$front->setControllerDirectory(CONTROLLER_DIR);
//执行
$front->dispatch();

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mayongzhan/archive/2008/05/08/2415461.aspx

所属分类:编程相关Mysql    作者:新浪博客    时间:2010-11-20 0:00:00

文章导航