fleaPHP框架的一些基础问题

发布时间:2014-10-22 12:04:14编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"fleaPHP框架的一些基础问题",主要涉及到fleaPHP框架的一些基础问题方面的内容,对于fleaPHP框架的一些基础问题感兴趣的同学可以参考一下。

一些刚接触FleaPHP的大虾,一些基础性的东西,由于开发教程及一些实例没有详细的说明,往往会被一些简单的问题所困扰。比如路径的问题、如何进行类功能扩展的问题等等。FleaPHP对我辈来说,是如此晦涩难懂的东西。但在dualface老大面前,竟然视若无物,对一些细节的东西,一会藉口说太简单,一会又藉口说太忙,不愿涉及。也难怪,如此千年老妖,已修炼成羽化成仙的境界,功力自然无比深厚,这些基础性的东西,自然不入法眼。但我辈是凡夫俗子,没有如此高深的功力,因此一些基本性的东西如果不多说,重复地说,唠唠叨叨地说,是不能弄明白的。道理是越摆才越明的么。 下面先说说路径的问题,因为牵涉到FlEA:loadClass()函数(FleaPHP 1.0.61为load_Class()),因此我必须唠唠叨叨地说。为了方便说明,先秀一下我的开发项目office的目录结构(相关部分): [webroot]/office                |                +- libs                |        +- FLEA                |        +- ......                +- APP                |        +- ......                +- Admin                |        +- Controller                |        +- Config                |        +- .....                +- _Shared                |        +- Model                |        +- Config                | 说明:office/libs目录里面放的是一些FleaPHP、Smarty等一些框架类。office/APP目录里放的是一些前台运行程序及参数配置文件、模版文件等一些东西。office/Admin目录里放的是管理后台运行程序及参数配置文件、模版文件等一些东西。office/Admin/Controller里面放的自然是后台控制器类文件。office/ADmin/Config目录里的是配置文件。office/_Shared/Model目录里放的是数据表对象类。office/_Shared/Config目录里的是前后台都要用到的数据库链接等一些参数配置文件。再贴一段index.php的代码: <?php/*** 文件名:index.php* 注释:后台管理入口文件* 作者:hegz* 更新时间:2007/02/27*/$dsn = '../_Shared/Config/DSN.php';define('WEBROOT_DIR', dirname(dirname(__FILE__)));define('ADMIN_DIR', WEBROOT_DIR . '/Admin');//define('DEPLOY_MODE', true); //部署模式时启用define('NO_LEGACY_FLEAPHP', true); //如果启用,即取消与旧版FleaPHP兼容require('../libs/FLEA/FLEA.php');FLEA::loadAppInf($dsn);FLEA::loadAppInf(ADMIN_DIR. '/Config/Admin_INF.php');FLEA::import(ADMIN_DIR);FLEA::import(WEBROOT_DIR . '/_Shared');FLEA::runMVC();?> 复制代码说明: $dsn = '../_Shared/Config/DSN.php';FLEA::loadAppInf($dsn); 复制代码因为数据库链接前后台都要用到,因此我将dbDSN数据链库接参数独立出来单独放在一个文件,这样不用前后台的配置文件都重复写这方面的代码。 define('WEBROOT_DIR', dirname(dirname(__FILE__)));define('ADMIN_DIR', WEBROOT_DIR . '/Admin');FLEA::import(ADMIN_DIR);FLEA::import(WEBROOT_DIR . '/_Shared'); 复制代码 说明:这里定义了一些程序运行过程中要用到的路径常量。FLEA::import()函数的作用就是把这些路径数据塞进全局变量数组$GLOBALS['__FLEA_CORE__']['CLASS_PATH']中保存起来,以方便其它程序引用。要想看到效果,需要插入下面的断点进行调试。在此我再唠叨一句,dump()函数用来调试程序真是太方便了,大家在调试程序时一定要会用,多用。老大为我们设想得真是太周到了,大家饮水不要忘了挖井人啊。 $dsn = '../_Shared/Config/DSN.php';define('WEBROOT_DIR', dirname(dirname(__FILE__)));define('ADMIN_DIR', WEBROOT_DIR . '/Admin');//define('DEPLOY_MODE', true); //部署模式时启用define('NO_LEGACY_FLEAPHP', true); //如果启用,即取消与旧版FleaPHP兼容require('../libs/FLEA/FLEA.php');FLEA::loadAppInf($dsn);FLEA::loadAppInf(ADMIN_DIR. '/Config/Admin_INF.php');FLEA::import(ADMIN_DIR);FLEA::import(WEBROOT_DIR . '/_Shared');// 插入调试断点dump($GLOBALS['__FLEA_CORE__']['CLASS_PATH']);exit;FLEA::runMVC(); 复制代码运行程序,显示的结果如下: Array(    [0] => d:\apmxe4\htdocs\office\libs\FLEA    [1] => d:\apmxe4\htdocs\office/Admin    [2] => d:\apmxe4\htdocs\office/_Shared) 至于WEBROOT_DIR,自然为d:\apmxe4\htdocs\office了。这些都是绝对路径,也就是说这是文件存放在主机上的物理路径,与“http://127.0.0.1/office/”这样的资源路径是两码事,由incude()、require_once()等包含命令装载文件时使用,不要搞混了。相对路径是office/Admin中的程序通过“../_Shared/Model”这样的方式访问office/_Shared/Model中的文件,就属于相对路径。这些路径在程序运行时装载类文件或设置Smarty模版参数时都要用到。这样设置路径的好处,方便以后部署到服务器或进行主机间迁移。同时,即使将office目录改为其它名字,都能保证程序运行不出问题。


上一篇:在drawable文件中如何画圆
下一篇:NYOJ 11 奇偶数分离 2013年8月20日

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款