ZendFramework的index入口文件

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

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

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

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

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

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

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

正题:

<?php
/**
* @name index.php
* @date Wed May 07 10:41:12 CST 2008
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*/

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();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值