Joomla 代码解读

Joomla 代码解读

ID:40557702

大小:18.76 KB

页数:5页

时间:2019-08-04

Joomla 代码解读_第1页
Joomla 代码解读_第2页
Joomla 代码解读_第3页
Joomla 代码解读_第4页
Joomla 代码解读_第5页
资源描述:

《Joomla 代码解读》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Joomla代码解读我们从安装程序入口文件/installation/index.php开始。1.常量定义index.php文件起始处定义了若干常量:define('_JEXEC',1);define('JPATH_BASE',dirname(__FILE__));define('DS',DIRECTORY_SEPARATOR);_JEXEC是一个标志量,表示程序正常启动(通过合法入口/index.php访问)。Joomla!在其他所有的.php程序起始处,均通过执行以下代码,阻止直接访问非入口程序的请求,这是出于安全的考虑://nodi

2、rectaccessdefined('_JEXEC')ordie('Restrictedaccess');JPATH_BASE顾名思义,是指安装程序的根目录,注意它与PHP预定义变量$_SERVER['DOCUMENT_ROOT']的区别,后者是当前的www虚拟主机在文件系统中的根目录,它是前者的上级目录。__FILE__是PHP的魔术常量之一:名称说明__LINE__文件中的当前行号。__FILE__文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自PHP4.0.2起,__FILE__总是包含一个绝对路径,而在此之前的版本

3、有时会包含一个相对路径。__FUNCTION__函数名称(PHP4.3.0新加)。自PHP5起本常量返回该函数被定义时的名字(区分大小写)。在PHP4中该值总是小写字母的。__CLASS__类的名称(PHP4.3.0新加)。自PHP5起本常量返回该类被定义时的名字(区分大小写)。在PHP4中该值总是小写字母的。__METHOD__类的方法名(PHP5.0.0新加)。返回该方法被定义时的名字(区分大小写)。定义DS则完全是为了方便程序书写和阅读,DIRECTORY_SEPARATOR是PHP的预定义常量之一,指目录分隔符,在Windows中

4、是反斜杠(backslash),在Linux中是斜杠(slash)/。2.引入框架定义在常量定义之后,通过两个包含文件引入了Joomla!安装程序的框架定义:require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');这两个文件的实际位置在/installation/includes/目录中。打开/installation/includes/defines.php文件,这

5、里定义了若干与路径有关的常量,包括:JPATH_ROOTJoomla!根目录,当Joomla!被配置为独立的虚拟主机程序是地,此变量相当于$_SERVER['DOCUMENT_ROOT']JPATH_SITEJoomla!站点目录,JPATH_ROOT的别名JPATH_CONFIGURATION配置文件保存目录JPATH_ADMINISTRATOR后台管理程序根目录JPATH_XMLRPCXMLRPC目录JPATH_LIBRARIES库程序目录JPATH_PLUGINS插件目录JPATH_INSTALLATION安装程序目录JPATH_T

6、HEMES外观模板目录JPATH_CACHE缓存目录好了,我们可以关闭defines.php文件了。再来看看/installation/includes/framework.php文件中有些什么,首先是PHP配置调整:error_reporting(E_ALL);@set_magic_quotes_runtime(0);@ini_set('zend.ze1_compatibility_mode','0');此处做了这么几件事:打开PHP报错,要求回显从错误(Error)到提醒(Notice)的全部异常信息;关闭运行时魔术引号(magic_

7、quotes_runtime)功能。此功能将对所有来自外部(包括数据库或文本文件)的字符串中的引号进行转义,即在其前面加上反斜杠或使用两个连续单引号替换所有的单引号(当打开magic_quotes_sybase开关时)。PHP不鼓励使用此功能,从PHP6.0.0开始它将被废除;关闭Zend引擎1(PHP4)兼容模式。PHP官方文档中提到:这影响到了对象的复制、构造(无属性的对象会产生FALSE或0)及比较。此模式下,对象将以值传递,而不是默认的引用传递。Joomla!的程序设计完全遵循面向对象思想,且书写非常规范,在这种前提下,这些兼容

8、功能只会造成困扰,不如舍弃之。接着检查Joomla!安装状态:if(file_exists(JPATH_CONFIGURATION.DS.'configuration.php')&&(file

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。