马永占,myz,mayongzhan

相当稳定的进步,欢迎回贴交流

马永占ID:mayongzhan
61341次访问,排名1588(-1)好友1人,关注者12
php,apache,mysql,linux,html,css,javascript
mayongzhan的文章
原创 149 篇
翻译 0 篇
转载 0 篇
评论 86 篇
myz的公告

XML聚合
feedsky
最近评论
Henry_Ma:这个笔记不错,我也这样记一下。
ZXS:收藏!
rm:请问如何分析当前打开的URL
比如一个网页的URL是不固定的

需要在每一个url打开的当前页里分析这个URL 其中有个参数是需要调用的 应该如何做呢?
mayongzhan:很深刻
mayongzhan:为什么黑大能知道这些而我不知道.同样是翻资料...哎差距啊...
文章分类
收藏
    相册
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 ZendFramework的index入口文件收藏

    新一篇: Mysql修改默认编码linux&windows | 旧一篇: MySQL多库关联

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

    发表于 @ 2008年05月08日 12:17:00|评论(loading...)|收藏

    新一篇: Mysql修改默认编码linux&windows | 旧一篇: MySQL多库关联

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © myz