【vc++精品源码栏目提醒】:以下是网学会员为您推荐的vc++精品源码-joomla_1.5_代码分析(重新排版整理) - 其它资料,希望本篇文章对您学习有所帮助。
joomla 源代码探析(一) 准备工作用 Joomla 建站一段时间了,由于采用了 1.5RC3 版,建站过程中发现了不少的问题,为了解决这些问题,看了不少的源代码,打算写一下源代码的学习过程。
首先是准备工作,源代码的学习过程其实也是一个不断测试代码的过程,所以:1、搭建一个测试网站,我建议在本机上架一个 WAMP 环境,嘿嘿,为什么选择 WAMP,主要个人习惯了,做了 6 年的 linux 下的程序员,还是不习 惯 emacs,呵呵,windows 下的编辑器好用。
2、搭建测试网站建议直接采用 SVN 下来的代码,在 windows 上装一个 tortoiseSVN,就可以了,joomla SVN reposity 的地址是 http://joomlacode.org/svn/joomla/development/trunk3、编辑器,我觉得挺重要的,我推荐使用 UE Studio ,用上你就知道了,能自动根据源码中的内容,生成类和函数的标签,你就不需要寻找 document 的生成器了。
4、搭建完成后,用 UE 建一个 project 导入源代码,时间有点点长,它在分析代买生成 TAG,生成后,你就点击“标签”,就可以看到全部的类和函数,习惯了 VC 的编辑环境的人,肯定喜欢这个。
5、搜寻代码学习的资源,目前我也没找到,我只在 http://dev.joomla.org 上查看了 framework的文章,中文资源似乎就更少了,我是说 1.5 版的,1.0 版的有几个中文网站谈到部分的代码问题,但是我没仔细看过质量到底如 何。
到现在位置,已经建立了研究环境,下一步就是“开始”joomla 源代码探析(二) 目录结构测试网站搭建完毕,首先来熟悉一下,1.5RC3 版的目录结构:1、componets 所有安装的组件的,前端用户界面相关程序都在这里,每个组件一个子目录,通常是 com_2、plugins 所有的插件,涉及的程序文件和模板文件,资源等等3、modules 所以安装的模块相关的程序和资源4、includes 涉及重要的类,定义等等5、languages,下面是所有的语言文件,新的规范是一种语言一个目录,比如英文就是 en-GB,中文简体就是 zh-CN,目录下是相应的语 言定义文件,命名规则是 语种.组件名字(插件名字).ini ,比如 zh-CN.com_showcase.ini zh-CN.plg-.ini 等等。
6、templates 没说的,一种模板一个目录7、library 最重要的目录之一了,下面都是重要的类文件,子目录结构对应类名称,比如jimport joomla.environment.uri 那么对应的是 joomla/environment/uri.php 文件其他的 cachelogs 目录就不说了,以后用的到。
joomla 源代码探析(三)documentroot/index.php ,以及 template//index.php ,可以称为万源之源,因为可以说所有的页面都是这两个文件的成果。
/index.php 是所有页面程序的起点,让我们来看看这个文件到底做了什么?define _JEXEC 1 //标志这是一个跟文件defineJPATH_BASE dirname__FILE__ //取得 Document root就是 /index.php 所在的绝对路 径define DS DIRECTORY_SEPARATOR // 定义目录分隔符require_once JPATH_BASE .DS.includes.DS.defines.php //defines.php 定义了一些目录变量,以后详细的写require_once JPATH_BASE .DS.includes.DS.framework.php //framework.php 是另一个非常重要的文件, framework.php 读入了 config.php 中定义的变 在量,同时 framework 中引入了一些的基础类,例如 JFactoryJUser 等等//全局对象工厂类 JFactoryJFactory 符合设计模式中的工厂模式,基本生成的对象大部分是单例模式,接下来我详细描述 JFactory,JFactory 在/libraries/joomla/factory.php 中定义,mainframe amp JFactory::getApplicationsite//取得 JApplication 对象,JApplication 是一个工厂类,提供了一些指定对象的生成,并提供了一系列的 api 函数//application 初 始 化 过 程 , 设 置 语 言 , 并 缺 的 editor 的 设 置 , 并 生 成 Juser 对 象mainframe-gtinitialise// 引 入 system 组 的 插 件JPluginHelper::importPluginsystem// 触 发 初 始 化 完 毕 后 定 义 的 pluging 响