公有成员 | |
| loadAppInf ($__flea_internal_config=null) | |
| getAppInf ($option, $default=null) | |
| getAppInfValue ($option, $keyname, $default=null) | |
| setAppInfValue ($option, $keyname, $value) | |
| setAppInf ($option, $data=null) | |
| import ($dir) | |
| loadFile ($filename, $loadOnce=false) | |
| loadClass ($className, $noException=false) | |
| getFilePath ($filename, $return=false) | |
| & | getSingleton ($className) |
| & | register (&$obj, $name=null) |
| & | registry ($name=null) |
| isRegistered ($name) | |
| getCache ($cacheId, $time=900, $timeIsLifetime=true, $cacheIdIsFilename=false) | |
| writeCache ($cacheId, $data, $cacheIdIsFilename=false) | |
| purgeCache ($cacheId, $cacheIdIsFilename=false) | |
| & | initWebControls () |
| & | initAjax () |
| loadHelper ($helperName) | |
| & | getDBO ($dsn=0) |
| parseDSN ($dsn) | |
| runMVC () | |
| init ($loadMVC=false) | |
| FLEA::loadAppInf | ( | $ | __flea_internal_config = null |
) |
载入应用程序设置
example: FLEA::loadAppInf('./config/MyConfig.php');
| mixed | $__config 配置数组或配置文件名 |
参考 $GLOBALS、__THROW()及loadClass().
参考自 register_app_inf().
| FLEA::getAppInf | ( | $ | option, | |
| $ | default = null | |||
| ) |
取出指定名字的设置值
example: FLEA::setAppInf('siteTitle'); ..... $siteTitle = FLEA::getAppInf('siteTitle');
| string | $option | |
| mixed | $default |
参考 $GLOBALS.
参考自 ___uri_filter()、__FLEA_EXCEPTION_HANDLER()、_ET()、FLEA_Dispatcher_Simple::_executeAction()、FLEA_Controller_Action::_executeView()、FLEA_Controller_Action::_getComponent()、FLEA_Controller_Action::_getDispatcher()、FLEA_Controller_Action::_getView()、FLEA_Ajax::_insertAjaxRequest()、FLEA_View_SmartyHelper::_pi_func_get_app_inf()、FLEA_Db_TableDataGateway::_prepareMeta()、FLEA_Db_Driver_Pgsql::connect()、FLEA_Db_Driver_Oracle::connect()、FLEA_Db_Driver_Mysql::connect()、FLEA_Dispatcher_Auth::dispatching()、encode_url_args()、FLEA_Db_Driver_Abstract::FLEA_Db_Driver_Abstract()、FLEA_Db_TableDataGateway::FLEA_Db_TableDataGateway()、FLEA_Db_TableLink::FLEA_Db_TableLink()、FLEA_Dispatcher_Auth::FLEA_Dispatcher_Auth()、FLEA_Dispatcher_Simple::FLEA_Dispatcher_Simple()、FLEA_Language::FLEA_Language()、FLEA_Log::FLEA_Log()、FLEA_Rbac::FLEA_Rbac()、FLEA_Session_Db::FLEA_Session_Db()、FLEA_View_Lite::FLEA_View_Lite()、FLEA_View_SmartTemplate::FLEA_View_SmartTemplate()、FLEA_View_Smarty::FLEA_View_Smarty()、FLEA_WebControls::FLEA_WebControls()、get_app_inf()、FLEA_Dispatcher_Simple::getActionName()、getCache()、FLEA_Dispatcher_Auth::getControllerACT()、FLEA_Dispatcher_Auth::getControllerACTFromDefaultFile()、FLEA_Dispatcher_Simple::getControllerClass()、FLEA_Dispatcher_Simple::getControllerName()、getDBO()、init()、initAjax()、initWebControls()、FLEA_Language::load()、loadHelper()、parseDSN()、FLEA_Dispatcher_Simple::parseUrl()、purgeCache()、runMVC()、FLEA_Helper_SendFile::sendFile()、FLEA_Session_Db::sessionOpen()、url()及writeCache().
| FLEA::getAppInfValue | ( | $ | option, | |
| $ | keyname, | |||
| $ | default = null | |||
| ) |
获得指定名字的设置值中的项目,要求该设置必须是数组
example: $arr = array('min' => 1, 'max' => 100, 'step' => 2); FLEA::setAppInf('rule', $arr); ..... $min = FLEA::getAppInfValue('rule', 'min');
| string | $option | |
| string | $keyname | |
| mixed | $default |
参考 $GLOBALS.
| FLEA::setAppInfValue | ( | $ | option, | |
| $ | keyname, | |||
| $ | value | |||
| ) |
| FLEA::setAppInf | ( | $ | option, | |
| $ | data = null | |||
| ) |
修改设置值
| string | $option | |
| mixed | $data |
参考 $GLOBALS.
参考自 FLEA_Dispatcher_Simple::_executeAction()、init()及set_app_inf().
| FLEA::import | ( | $ | dir | ) |
导入文件搜索路径
FLEA::loadClass()、FLEAgetSingleton() 会在搜索路径中查找指定名字的类定义文件。 因此需要调用 FLEA::import() 将存放类定义文件的目录添加到搜索路径中。 但是,不应该将类文件所在目录直接添加到搜索路径中,而是根据类的命名来决定要添加哪一个目录。
例如类名称是 Table_Posts,而实际的文件是 ./APP/Table/Posts.php。 那么应该添加的目录就是 ./APP,而不是 ./APP/Table 。
example: FLEA::import(APP_DIR . '/LIBS');
| string | $dir |
参考 $GLOBALS.
参考自 import().
| FLEA::loadFile | ( | $ | filename, | |
| $ | loadOnce = false | |||
| ) |
载入指定的文件
FLEA::loadFile() 会 $filename 参数中的 “_” 替换为目录,例如:
example: FLEA::loadFile('Table_Posts.php'); // 等同于 include 'Table/Posts.php';
| string | $className | |
| boolean | $loadOnce 指定为 true 时,FLEAloadFile() 等同于 require_once |
| FLEA::loadClass | ( | $ | className, | |
| $ | noException = false | |||
| ) |
载入指定类的定义文件
类名称中的 “_” 会被替换为目录,然后从搜索路径中查找该类的定义文件。
example: FLEA::loadClass('Table_Posts'); // 首先将类名称 Table_Posts 转换为文件名 Table/Posts.php // 然后从搜索路径中查找 Table/Posts.php 文件
| string | $filename | |
| boolean | $noException 如果为 true,则类定义文件没找到时不抛出异常 |
参考自 FLEA_Controller_Action::_getComponent()、FLEA_Dispatcher_Auth::_loadACTFile()、FLEA_Db_TableDataGateway::_prepareMeta()、FLEA_Db_TableLink::calcCount()、FLEA_Helper_Verifier::check()、FLEA_Rbac::check()、FLEA_Db_Driver_Sqlite::connect()、FLEA_Db_Driver_Pgsql::connect()、FLEA_Db_Driver_Oracle::connect()、FLEA_Db_Driver_Mysql::connect()、FLEA_Db_TableDataGateway::create()、FLEA_Helper_Image::createFromFile()、FLEA_Db_TableLink::createLink()、FLEA_Dispatcher_Auth::dispatching()、FLEA_Db_Driver_Sqlite::execute()、FLEA_Db_Driver_Pgsql::execute()、FLEA_Db_Driver_Oracle::execute()、FLEA_Db_Driver_Mysql::execute()、FLEA_Db_TableLink::FLEA_Db_TableLink()、FLEA_View_Lite::FLEA_View_Lite()、FLEA_View_Smarty::FLEA_View_Smarty()、getCache()、getDBO()、FLEA_Helper_FileUploader::getFile()、FLEA_Db_TableDataGateway::getLink()、getSingleton()、FLEA_Db_TableLink::init()、init()、FLEA_Db_ActiveRecord::init()、FLEA_Language::load()、load_class()、load_yaml()、loadAppInf()、loadFile()、loadHelper()、purgeCache()、FLEA_Db_TableDataGateway::qinto()、register()、registry()、FLEA_Db_TableDataGateway::remove()、runMVC()、FLEA_Db_TableLink::saveAssocData()、FLEA_Db_Driver_Mysql::selectDb()、FLEA_Db_TableDataGateway::update()及writeCache().
| FLEA::getFilePath | ( | $ | filename, | |
| $ | return = false | |||
| ) |
按照 FleaPHP 中命名规则,搜索文件
FleaPHP 的命名规则就是文件名中的“_”替换为目录分隔符。
| string | $filename | |
| boolean | $return 指示是否直接返回处理后的文件名,而不判断文件是否存在 |
参考 $GLOBALS.
参考自 FLEA_Dispatcher_Simple::_loadController()、get_file_path()、FLEA_Dispatcher_Auth::getControllerACT()、loadClass()及loadFile().
| & FLEA::getSingleton | ( | $ | className | ) |
返回指定类的唯一一个实例
example: $obj =& FLEA::getSingleton('Table_Posts); ...... $obj2 =& FLEA::getSingleton('Table_Posts); // 检查调用两次获取的是否是同一个实例 echo $obj === $obj2 ? 'Equals' : 'Not equals';
| string | $className |
参考 isRegistered()、loadClass()、register()及registry().
参考自 FLEA_Controller_Action::_getDispatcher()、FLEA_Controller_Action::_getView()、_T()、FLEA_Db_TableDataGateway::FLEA_Db_TableDataGateway()、FLEA_Dispatcher_Auth::FLEA_Dispatcher_Auth()、get_singleton()、FLEA_Db_ManyToManyLink::init()、FLEA_Db_TableLink::init()、init()、initAjax()、initWebControls()、load_language()及log_message().
| & FLEA::register | ( | &$ | obj, | |
| $ | name = null | |||
| ) |
将一个对象实例注册到对象实例容器,以便稍后取出
example: $obj =& new MyClass(); // 将对象注册到容器 FLEA::register($obj, 'MyClass'); ..... // 从容器查找指定的对象 $obj2 =& FLEA::registry('MyClass'); // 检查是否是同一个实例 echo $obj === $obj2 ? 'Equals' : 'Not equals';
| object | $obj | |
| string | $name |
参考 $GLOBALS、__THROW()及loadClass().
参考自 getSingleton()、FLEA_Db_TableLink::init()、FLEA_Db_ActiveRecord::init()、reg()及runMVC().
| & FLEA::registry | ( | $ | name = null |
) |
从对象实例容其中取出指定名字的对象实例,如果没有指定名字则返回包含所有对象的数组
example:参考 FLEA::register()
| string | $name |
参考 $GLOBALS、__THROW()及loadClass().
参考自 getSingleton()、FLEA_Db_TableLink::init()、FLEA_Db_ActiveRecord::init()及ref().
| FLEA::isRegistered | ( | $ | name | ) |
检查指定名字的对象是否已经注册
example: if (FLEA::isRegistered('MyClass')) { $obj =& FLEA::registry('MyClass'); } else { $obj =& new MyClass(); }
| string | $name |
参考 $GLOBALS.
参考自 check_reg()、getSingleton()、FLEA_Db_TableLink::init()及FLEA_Db_ActiveRecord::init().
| FLEA::getCache | ( | $ | cacheId, | |
| $ | time = 900, |
|||
| $ | timeIsLifetime = true, |
|||
| $ | cacheIdIsFilename = false | |||
| ) |
读取指定缓存的内容,如果缓存内容不存在或失效,则返回 false
example: $cacheId = 'my_cache_id'; if (!($data = FLEA::getCache($cacheId))) { $data = 'Data'; FLEA::writeCache($cacheId, $data); }
如果 $cacheIdIsFilename 参数为 true,则生成的缓存文件会以 $cacheId 参数作为文件名。 基于安全原因,尽量不要将 $cacheIdIsFilename 参数设置为 true。
$time 参数默认为缓存内容的有效期。其计算依据是以缓存文件的最后更新时间为准(也就是最后一次更新该缓存内容的时间)。
如果 $timeIsLifetime 为 false,则 $time 参数表示用于和缓存文件最更新时间进行比较的依据。 如果 $time 指定的时间早于缓存文件的最后更新时间,则判断缓存内容为有效。
| string | $cacheId 缓存ID,不同的缓存内容应该使用不同的ID | |
| int | $time 缓存过期时间或缓存生存周期 | |
| boolean | $timeIsLifetime 指示 $time 参数的作用 | |
| boolean | $cacheIdIsFilename 指示是否用 $cacheId 作为文件名 |
参考 __THROW()、getAppInf()、loadClass()及safe_file_get_contents().
参考自 FLEA_Db_TableDataGateway::_prepareMeta()、get_cache()及load_yaml().
| FLEA::writeCache | ( | $ | cacheId, | |
| $ | data, | |||
| $ | cacheIdIsFilename = false | |||
| ) |
将变量内容写入缓存
example: $data = .....; // 要缓存的数据,可以是任何类型的值 // cache id 用于唯一指定一个缓存数据,以便稍后取出缓存数据 $cacheId = 'data_cahce_1'; FLEA::writeCache($cacheId, $data);
| string | $cacheId | |
| mixed | $data | |
| boolean | $cacheIdIsFilename |
参考 __THROW()、getAppInf()、loadClass()及safe_file_put_contents().
参考自 FLEA_Db_TableDataGateway::_prepareMeta()、load_yaml()及write_cache().
| FLEA::purgeCache | ( | $ | cacheId, | |
| $ | cacheIdIsFilename = false | |||
| ) |
删除指定的缓存内容
| string | $cacheId | |
| boolean | $cacheIdIsFilename |
参考 __THROW()、getAppInf()及loadClass().
参考自 purge_cache().
| & FLEA::initWebControls | ( | ) |
初始化 WebControls,返回 FLEA_WebControls 对象实例
可以修改应用程序设置 webControlsClassName,指定另一个 WebControls 类。
参考 getAppInf()及getSingleton().
参考自 FLEA_View_SmartyHelper::_pi_func_webcontrol()及init_webcontrols().
| & FLEA::initAjax | ( | ) |
初始化 Ajax,返回 FLEA_Ajax 对象实例
可以修改应用程序设置 ajaxClassName,指定另一个 Ajax 类。
参考 getAppInf()及getSingleton().
参考自 FLEA_View_SmartyHelper::_pi_func_dump_ajax_js()、FLEA_Controller_Action::_registerEvent()及init_ajax().
| FLEA::loadHelper | ( | $ | helperName | ) |
载入一个助手
所有的助手都定义在应用程序设置中,并且以 helper. 开头。 例如 helper.array 指定为 FLEA_Helper_Array、helper.image 指定为 FLEA_Helper_Image。
| string | $helperName |
| & FLEA::getDBO | ( | $ | dsn = 0 |
) |
返回数据库访问对象实例
如果不提供 $dsn 参数,或者 $dsn 参数为 0,则以应用程序设置 dbDSN 为 DSN 信息。
DSN 是 Database Source Name 的缩写,可以理解为数据源名字。 在 FleaPHP 中,DSN 是一个数组,包含了连接数据库需要的各种信息,例如主机、用户名、密码等。
DSN 的正确写法:
example: $dsn = array( 'driver' => 'mysql', 'host' => 'localhost', 'login' => 'username', 'password' => 'password', 'database' => 'test_db', 'charset' => 'utf8', );
$dbo =& FLEA::getDBO($dsn);
| array|string|int | $dsn |
参考 $GLOBALS、__THROW()、getAppInf()、loadClass()及parseDSN().
参考自 FLEA_Helper_Pager::findAll()、FLEA_Db_TableDataGateway::FLEA_Db_TableDataGateway()、FLEA_Helper_Pager::FLEA_Helper_Pager()、get_dbo()及FLEA_Session_Db::sessionOpen().
| FLEA::parseDSN | ( | $ | dsn | ) |
分析 DSN 字符串或数组,返回包含 DSN 连接信息的数组,失败返回 false
| string|array | $dsn |
参考 getAppInf().
参考自 FLEA_Db_TableLink::FLEA_Db_TableLink()、getDBO()及parse_dsn().
| FLEA::runMVC | ( | ) |
FleaPHP 应用程序 MVC 模式入口
如果应用程序需要使用 FleaPHP 提供的 MVC 模式,则在载入 FLEA.php 和自定义的应用程序设置后,应该调用 FLEA::runMVC() 启动应用程序。
参考 getAppInf()、init()、loadClass()及register().
参考自 run().
| FLEA::init | ( | $ | loadMVC = false |
) |
准备运行环境
| boolean | $loadMVC |
安装应用程序指定的异常处理例程
载入日志服务提供程序
如果没有指定缓存目录,则使用默认的缓存目录
参考 __SET_EXCEPTION_HANDLER()、_T()、getAppInf()、getSingleton()、loadClass()、loadFile()、log_message()及setAppInf().
参考自 __FLEA_PREPARE()及runMVC().
1.5.3