ZendFrameWork 笔记——入口文件

<?php
/**
 * @name index.php
 * @date 2012 12 20 10:03:05
 * @copyright 王燕广(hunter_wyg)
 * @author 王燕广(hunter_wyg)
 * @link http://blog.csdn.net/hunter_wyg/
 */
header ( "Content-type: text/html ; charset= utf8 " );

date_default_timezone_set ( 'Asia/Shanghai' );
//显示个时间 
echo "<h1>";
echo date ( 'Y-m-d H:i:s', time () );
echo "</h1>";

ini_set ( 'display_errors', 'On' );

error_reporting ( E_ALL & ~ E_NOTICE );

// 定义配置文件常量


//echo "<pre>";
//print_r($_SERVER);
//echo "</pre>";

//绝对路径: 项目名的下一级目录
//defined ( ABS_DIR ) or define ( ABS_DIR, substr ( $_SERVER ['SCRIPT_FILENAME'], 0, strrpos ( $_SERVER ['SCRIPT_FILENAME'], $_SERVER['SCRIPT_NAME'] ) + 1 ) );
defined ( ABS_DIR ) or define ( ABS_DIR, substr ( $_SERVER ['SCRIPT_FILENAME'], 0, strrpos ( $_SERVER ['SCRIPT_FILENAME'], '/' ) + 1 ) );

//项目路径
defined ( APP_DIR ) or define ( APP_DIR, ABS_DIR . 'application/' );
// echo "<h1>APP_ROOT---->[".APP_DIR."]</h1>";


//配置文件路径
defined ( CONFIG_INI ) or define ( CONFIG_INI, APP_DIR . 'configs/app.ini' );
//模块总路径
defined ( MODULES_DIR ) or define ( MODULES_DIR, APP_DIR . 'modules/' );

//echo str_replace(DIRECTORY_SEPARATOR, '\\', MODULES_DIR);
//缓存路径
defined ( CACHE_DIR ) or define ( CACHE_DIR, APP_DIR . 'cache/' );
//是否缓存
defined ( CACHING ) or define ( CACHING, false );
//smarty compile_dir路径
defined ( COMPILE_DIR ) or define ( COMPILE_DIR, MODULES_DIR . 'compile/' );

set_include_path ( '.' . PATH_SEPARATOR . get_include_path () . PATH_SEPARATOR . './library/' . PATH_SEPARATOR . './application/modules/'.PATH_SEPARATOR.MODULES_DIR.'admin/models/'.PATH_SEPARATOR.MODULES_DIR.'default/models/' );

require_once 'Zend/Loader.php';

include_once 'Smarty/Smarty.class.php';
Zend_Loader::loadClass ( 'Zend_Db' );
Zend_Loader::loadClass ( 'Zend_Db_Table' );
Zend_Loader::loadClass ( 'Zend_Registry' );
Zend_Loader::loadClass ( 'Zend_Config_Ini' );
//这里的Custom 是我集成的Action 在里面写了一些我自己常用的方法, 正常情况下是:Zend_Loader::loadClass('Zend_Controller_Action');
 Zend_Loader::loadClass ( 'Zend_Controller_Custom' );
Zend_Loader::loadClass ( 'Zend_Controller_Front' );

// Zend解析ini
/*
 * if (file_exists ( CONFIG_INI )) { $config = new Zend_Config_Ini ( CONFIG_INI
 * ); echo "<pre>"; print_r ( $config ); echo "</pre>"; } else { die (
 * 'AAAAAAAAAAAAAAA' ); }
 */

/*apache 禁止客户访问 ini文件 写在apache 对应的Vhost里
 * <files *.ini>
	order deny,allow
	deny from all
	</files>
 */
// php函数解析
if (file_exists ( CONFIG_INI )) {
	$config = parse_ini_file ( CONFIG_INI, true );

	//	echo "<pre>";
//	print_r ( $config );
//	echo "</pre>";
} else {
	die ( CONFIG_INI . ' Can\'t read!' );
}

$smartyConf = array (template_dir => array (MODULES_DIR . 'admin/views/', MODULES_DIR . 'default/views/' ), compile_dir => COMPILE_DIR, cache_dir => CACHE_DIR, caching => CACHING );
$smarty = new Smarty ();
foreach ( $smartyConf as $key => $val ) {
	$smarty->$key = $val;
}
$smarty -> force_compile = 1 ;
//echo "<pre>";
//print_r ( $smarty );
//echo "</pre>";


Zend_Registry::set ( 'view', $smarty );

$db = Zend_Db::factory ( $config ['dbadapter'], $config ['dbparams'] );

Zend_Db_Table::setDefaultAdapter ( $db );

//echo "<pre>";
//print_r($db);
//echo"</pre>";
//单例模式 实例化 
$front = Zend_Controller_Front::getInstance ();

//禁用Zend视图  注意拼写。。两个er
$front->setParam ( 'noViewRenderer', true );

//可以简单理解为,让241错误可视化
$front->setParam ( 'noErrorHandler', true );
$front->throwExceptions ( true );

//当无法找到Controller的时候总是调用默认Controller
// $front -> setParam('useDefaultControllerAlways',true);


// 模块化  两种方式都可行,第一种本质是addControllerDirectory, 第二种会在目录下找模块儿,并在对应的目录下找controllers  如果不是默认的话需要
// setModuleControllerDirectoryName('customController');
 //$front->setControllerDirectory ( array ('admin' => MODULES_DIR . 'admin/Controllers/', 'default' => MODULES_DIR . 'default/Controllers/' ) );
$front->addModuleDirectory ( MODULES_DIR );


//echo "<pre>";
//print_r ( $front->getControllerDirectory () );
//echo "</pre>";
//echo "<pre>";
//print_r ( $front );
//echo "</pre>";

$front->dispatch ();



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值