标题: ZendFramework的index入口文件,转自blog.csdn.net/mayongzhan
  本主题由 admin_happy 于 2008-5-8 16:36 加入精华 
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 34
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2008-5-8 12:20  资料  短消息  加为好友 
ZendFramework的index入口文件,转自blog.csdn.net/mayongzhan

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。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();





顶部
 


PHPEye社区--LAMP开源技术社区


当前时区 GMT+8, 现在时间是 2008-5-12 10:49

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.015174 second(s), 7 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver - WAP