<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
FleaPHP 是一个具有高度灵活性的框架。开发者可以用不同的设置来调整 FleaPHP 的工作方式。这些设置统一保存在名为“应用程序设置”的数据源中。
实际上,除了 FleaPHP 框架本身,应用程序也可以使用“应用程序设置”来保存应用程序运行时需要的各种设置。
FleaPHP 的应用程序设置有一个默认配置文件,保存在 FLEA/Config/Default_APP_INF.php
中。应用程序可以在入口文件(例如 index.php
)中修改这些设置,以便调整 FleaPHP 的工作方式。
如何使用应用程序设置?
当 FleaPHP 框架初始化时,默认的应用程序设置文件(Default_APP_INF.php
)会被载入。如果应用程序要指定设置,推荐的做法有下列几种:
创建应用程序的私有设置文件
当需要指定多个应用程序设置时,推荐使用该方法。具体的做法非常简单,只需要定义类似如下的文件即可(假设下面的内容保存到文件 APP/Config/MY_APP_INF.php
)。
<?php </span>return array( 'defaultController' => 'UserCenter', 'urlLowerChar' => false, 'dispatcher' => 'FLEA_Dispatcher_Auth', 'dbDSN' => array( 'driver' => 'mysql', 'host' => 'localhost', 'login' => 'root', 'password' =>空字符串, 'database' => 'test', ),);?>
然后在应用程序的入口文件 index.php
中调用 run()
函数的代码前,增加一行 register_app_inf('APP/Config/MY_APP_INF.php')
即可。例如:
<?php </span>require('FLEA/FLEA.php');register_app_inf('APP/Config/MY_APP_INF.php');run();?>
直接在入口文件中指定设置
对于少量的设置,可以在入口文件中直接用 set_app_inf()
函数指定。例如:
<?php </span>require('FLEA/FLEA.php');set_app_inf('defaultController', 'UserCenter');run();?>
不管采用哪一种方式,重要的都是必须在 run()
之前就指定好应用程序设置。
默认的应用程序设置
默认的应用程序设置提供了符合常见应用程序运行需要的设置。下面分类列出这些设置的名字和详细说明。
核心配置
-
namespace 应用程序的默认名字空间,默认值为空字符串
这个设置会影响到应用程序所有类的名称定义。例如 namespace
设置为 FOO
时,应用程序所有控制器、模型的类名字都要加上前缀 FOO_
。变成诸如 FOO_Controller_Default
、FOO_Model_News
等。
为了让你的代码能够更容易的在其他应用程序中复用,最好将 namespace 设置为空字符串。
-
controllerAccessor 指示控制器的 URL 参数名,默认值为
controller
这个设置指定在 URL 查询参数中,用什么名字的参数指定控制器名字。例如 controllerAccessor 设置为 “ctl
” 时,就必须用 index.php?ctl=MyController
来指定要调用的控制器。
-
defaultController 指示默认控制器的名字,默认值为
Default
当 url
参数中没有指定要调用的控制器时,将依据 defaultController 的设置调用默认的控制器。
-
actionAccessor 和 defaultAction,默认值分别为
action
和 index
这两个设置的作用和 controllerAccessor、defaultController 类似。只不过用于指定控制器动作的参数名和默认动作名。
-
urlMode 指定 URL 分析和构造模式,默认值为
URL_STANDARD
URL 的分析和构造模式,目前支持三种,分别是:URL_STANDARD
、URL_PATHINFO
和 URL_REWRITE
。
URL_STANDARD
模式中,URL 参数采用采用标准的方式,例如 index.php?controller=MyController&action=MyAction&class_id=2&sort=1
关于 URL_PATHINFO
和 URL_REWRITE
的详细说明,请参考使用 PATHINFO 和 URL 重写。
-
urlLowerChar 指示是否将
url
参数中包含的控制器名字和动作名字强制转为小写字符,默认值为 false
对于 Windows 系统来说,这个设置无关紧要。而对于 Linux/Unix 系统来说,这个设置会关系到控制器类定义文件的命名。
当 urlLowerChar 为 true
时,控制器名字会被转为小写字符,而该控制器的类名字除第一个字母为大写外,其他全为小写。例如控制器名为 MyController
,实际的控制器类名称为 Mycontroller
,对应的类定义文件为 Mycontroller.php
。
当 urlLowerChar 为 false
时,控制器名字和控制器的类名字完全对应,例如控制器名为 QuickBenchmark
,实际的控制器类名称为 QuickBenchmark
,对应的类定义文件为 QuickBenchmark.php
。
-
controllerClassPrefix 指示控制器类名称前缀,默认值为
Controller_
-
actionMethodPrefix 和 actionMethodSuffix 指示控制器动作的方法名要加上的前缀和后缀,默认值分别为
action
和空字符串 使用前缀和后缀可以,让控制器动作方法的名称和控制器中的其他方法区别开来。同时也可以避免无意中造成控制器内的私有方法被浏览器访问到。
-
dispatcher 指示应用程序要使用的 URL 调度器,默认值为
FLEA_Dispatcher_Simple
URL 调度器分析 URL 参数,决定要调用的控制器和控制器动作方法,最后调用控制器动作方法。默认的 FLEA_Dispatcher_Simple
是一个简单的调度器,仅仅是分析 URL 参数,然后完成调用工作。而更复杂的 FLEA_Dispatcher_Auth
则可以结合 FleaPHP
自带的 RBAC
(基于角色的访问控制)组件完成访问控制功能。
如果开发者自己编写了调度器,那么修改这个设置即可让应用程序使用开发者自己编写的调度器。
-
dispatcherFailedCallback 指示调度器调度失败后,要调用的处理程序,默认值为
null
如果希望应用程序处理调度失败的情况(例如控制器或控制器方法不存在),则需要覆盖这个设置。
<?php </span>set_app_inf('dispatcherFailedCallback', 'appDispatcherFailedHandler');?>
-
internalCacheDir 指示 FleaPHP 内部及
cache
系列函数使用的缓存目录,默认值为 FLEA/_Cache/
目录
-
autoLoad 指示要自动载入的文件,默认载入
FLEA_Helper_Array.php
、FLEA_Helper_Html.php
和 FLEA_Controller_Action.php
三个文件 这个设置必须是一个数组,数组中每一个项目为要自动载入的文件。
-
sessionProvider 指示要使用的
session
服务提供程序,默认值为 null
如果设置为 null
,则表示使用 PHP 自带的 session
服务。
-
autoSessionStart 指示是否自动起用
session
支持,默认值为 true
如果该设置为 true
,则每次 FleaPHP 框架初始化后都会自动执行 session_start()
函数。
-
requestFilters 指示使用哪些过滤器对 HTTP 请求进行过滤,默认值为空数组
和 autoLoad 设置类似,该设置必须为数组。但数组中每一个项目为要运行的过滤器类名字。过滤器按照出现在数组中的顺序初始化和运行。
每一个过滤器实际上都是一个脚本,无需要实现为一个类。可以参考 FLEA/Filter/
目录中的过滤器代码实现自己的过滤器。
FleaPHP 初始化时,会根据 PHP 运行环境设置和应用程序设置来决定是否自动运行 FLEA_Filter_MagicQuotes
和 FLEA_Filter_Uri
过滤器。因此开发者不应该在 requestFilters 设置中调用这两个过滤器。
数据库相关
<?php </span>set_app_inf('dbDSN', array( 'driver' => 'mysql', 'host' => 'localhost', 'login' => 'username', 'password' => 'password', 'database' => 'test_db', ));?>
-
dbValidationProvider 指示表数据入口要使用的数据验证服务对象,默认值为
FLEA_Helper_Validation
视图和模版相关
I18N
有关 FleaPHP 对 I18N 支持的详细信息,请参考开发指南的相关章节。
-
responseCharset 指示 FleaPHP 输出内容的使用的编码,默认值为
gb2312
FleaPHP 核心本身并不假定要处理的内容采用什么编码,也不会自动将输入内容转换为输出内容指定的编码。responseCharset 设置仅仅是用来作为一个参考,特别是 autoResponseHeader 设置为 true
时,FleaPHP 会自动送出 Content-Type: text/html; charset=xxxxx
的 HTTP 头信息。
-
databaseCharset 指示当 FleaPHP 连接数据库时,要指定的编码,默认值为
gb2312
许多较为高级的数据库,例如 PostgreSQL、MySQL 4.1/5.x、Oracle 等,都允许在数据库中保存不同编码的数据。因此开发者要正确设置 databaseCharset 设置,以便 FleaPHP 在连接数据库时能够正确设置编码,避免乱码问题。
对于较老的数据库,例如 MySQL 3.x/4.0,这个设置没有意义。
-
autoResponseHeader 指示是否自动输出
Content-Type: text/html; charset=xxxxx
的 HTTP 头信息,默认值为 true
当该设置为 true
时,FleaPHP 会在初始化时自动输出一个 HTTP 头信息,以指定应用程序输出内容的编码。具体指定什么编码,由 responseCharset 设置决定。
对于大部分服务器,启用该设置可以避免出现浏览器无法正确识别输出内容编码的问题。但在某些服务器环境中,启用该设置会导致出现无法输出动态图像等问题。
-
charsetConstant 指示是否自动定义
RESPONSE_CHARSET
、DATABASE_CHARSET
等常量,默认值为 true
当该设置为 true
时,FleaPHP 会在初始化时根据 responseCharset 和 databaseCharset 设置分别定义 RESPONSE_CHARSET
和 DATABASE_CHARSET
常量。应用程序可以用这两个常量简化一些开发。
-
multiLangaugeSupport 指示是否启用多语言支持,默认值为
false
当该设置为 true
时,会自动载入由 languageSupportProvider 指定的多语言支持服务提供程序。
-
languageSupportProvider 指定提供多语言支持的提供程序,默认值为
FLEA_Com_Language
FLEA_Com_Language
是 FleaPHP 自带的多语言支持服务提供程序。
-
languageFilesDir 指示语言文件的保存位置,默认值为
null
当使用多语言支持时,必须修改该设置,指向一个保存所有语言文件的目录。
语言文件按照“语言/字典名.php”的目录结构存储,例如 languageFilesDir 设置为 /var/www/test/languages
,则语言文件的实际文件名就可能是:/var/www/test/languages/chinese-gb2312/user_interface.php
。
-
defaultLanguage 指示默认语言,默认值为
chinese-gb2312
当载入语言文件时如果没有指定语言参数,则会从 defaultLanguage 指定的语言目录下载入字典文件。
-
autoLoadLanguage 指示要自动载入的语言字典,默认值为
null
autoLoadLanguage 可以是数组,其中每一项是一个要载入的字典名。或者是一个用“,”分隔多个字典名的字符串。
FLEA_Dispatcher_Auth 和 RBAC 组件
-
dispatcherAuthProvider 指示调度器要使用的验证服务提供程序,默认值为
FLEA_Com_RBAC
FLEA_Com_RBAC
提供了 check()
方法,让调度器通过调用该方法来检查当前发起请求的用户是否有权限访问指定的控制器和控制器动作方法。如果开发者要编写自己的验证服务提供程序,就必须实现 check()
方法。如果使用开发者自己编写的调度器,也可以通过该设置来指定验证服务提供程序。
check()
方法的原型是:function check($roles, $ACT)
-
defaultControllerACTFile 指示
RBAC
组件要使用的默认 ACT 文件,默认值为空字符串 通过该设置,可以为多个控制器指定 ACT(访问控制表),而不需要为每一个控制器都提供一个 .act.php
文件。注意,该设置指定的文件必须是完整路径,或者相对于应用程序入口(index.php
)的相对路径。
-
autoQueryDefaultACTFile 指示
RBAC
组件是否在没有找到控制器的 ACT 文件时,是否从默认 ACT 文件中查询控制器的 ACT,默认值为 false
-
controllerACTLoadWarning 指示没有找到控制器的 ACT 时,是否显示警告信息,默认值为
true
-
defaultControllerACT 指示当没有为控制器提供 ACT 时,要使用的默认 ACT,默认值为
null
-
dispatcherAuthFailedCallback 指示用户没有权限访问控制器或控制器方法时,要调用的处理程序,默认值为
null
-
RBACSessionKey 指示 RBAC 组件用什么键名在 session 中保存用户数据,默认值为
RBAC_USERDATA
如果在一个域名下同时运行多个应用程序,请务必为每一个应用程序使用自己独一无二的键名。
日志服务和错误处理
<!-- generated by Texy! -->
相关推荐
大道PHP 第44章 应用FleaPHP开发论坛社区系统.doc
PHP开发框架 Fleaphp
Fleaphp框架使用规范收集.pdf
fleaphp框架,国产最好php开发框架
FleaPHP 开发指南,cf gf FleaPHP的初学者而言是一个很好的学习资料!
PHP一键安装环,简单,方便,实用。此环境包括[APACHE2+PHP5+MYSQL5] 安装完成后在D盘自动生成apmxe文件夹,双击文件夹中的run-fleaphp.exe自动运行PHP环境。
FleaPHP 框架学习教程.pdf
FleaPHP 开源应用程序开发框架中常用系统方法详解: FLEA::initWebControls() 函数原型: /** * 初始化 WebControls,返回 FLEA_WebControls 对象实例 * @return FLEA_WebControls */ function & ...
[其他类别]FleaPHP 1.7.1524 (开源 PHP开发框架)_fleaphp.zip
fleaphp1.7.1524,官方下载不了,这里提供一个下载地址给大家
包含php mysql FLEAPHP Smarty 正则 javascript html等多种设计语言与开发语言的手册,下载一个,受用一生
初学者必备的学习手册,特别是初学fleaphp的朋友,这本书非常好!当然你还要下点别的资料!
FleaPHP 框架学习教程,高清,适合php和框架的进阶学习
fleaphp ajaxLogin 实例
这个是一个中文的fleaphp中文手册,里面有详细的解释,非常适合初学者。
fleaphp.chm手册