第 1 部分
上周非常紧张,因为我有我们的毕业项目演讲、答辩和演示 (http://fyp.theebgar.net)。我收到了谷歌的欢迎包,里面有一个红色的小笔记本和一张装有 505 美元的预付借记卡。我还把我的计划部分移植到 Joomla! 的上下文中,研究了现有 Joomla! 1.6 库的格式,并采用了 JUser 来实现分类 API 的树类。预计在一周内完成 API 的实现。
第 2 部分
在 5 月 28 日,我与一位导师在 GTalk 上进行了非正式的聊天。讨论了以下内容
1. GPL 许可证和借鉴样式与模式
"我:1. 我采用了 Joomla 库中 TUser 类的代码。我可以给出归属,并且它是 GPL 许可的。这样会有问题吗?
8:38 PM 我这样做是因为它来自 Joomla! 1.6 并且由核心开发者编写,所以我可以用相同的风格8:39 PM Luis:你说的给出归属是指什么.. 是指说明这是由 Joomla 核心团队开发而不是你?我:不是,是指风格和代码的部分是从这个类借鉴的8:40 PM Luis:啊.. 我明白了.. 这样很好"
2. 表格子类的位置
我:JUser 使用一个子类来处理表格操作 JTableUser,它位于中央位置 /libraries/joomla/database/tables但我决定将其保留在我的库中
3. JTree 的位置
我:是的,它是放在库中的 joomla 目录下哦,我在结构中犯了一个错误这是我提交的:(Luis:除非你打算将其包含在 Joomla 框架的核心中10:14 PM 我:嗯,这个想法是对的?Luis:我不确定安装程序何时会定位到第三方库我认为是在 libraries/ 文件夹下而不是 libraries/joomla/ 内when = where我:啊,好的,那就没事了让我们保持当前的这种方式10:15 PM jimport('taxonomy.tree');
4. 从 JClass 继承
路易斯:嗯,JClass 在 1.5 版本中不存在它是 1.6 版本的添加我:嗯抱歉如果我遗漏了任何 Joomla 模式:(我检查了一些其他的库类比如文件系统,9:03 PM 然后我决定使用路易斯:嗯,他们决定在特定情况下从 JClass 继承肯定有充分的理由但 JObject 包含了很多功能,值得继承我:但在操作中 JTaxTree 与 JUser 相当9:05 PM 你认为我应该使用 JObject 吗?9:06 PM 路易斯:我认为是的,但我需要确定一下.... 给我五分钟... 对 JTaxTree 没有异议我:当然没问题9:07 PM 实际上我想确认一下我将 JTableTaxTree 放在的地方是否正确9:14 PM 我:嗯,你怎么看?9:18 PM 路易斯:回来... JClass 定义了一个受保护的构造函数,而 JObject 没有我:哇,那它是最适合的路易斯:所以它适用于单例模式9:19 PM 问题是,这个类将会以单例模式使用吗?我:嗯,我从它的使用中猜测到了是的,它会路易斯:我明白了...在这种情况下,从 JClass 继承没有问题
5. 还讨论了 JLeaf 的实现(但决定采用特定的设计,稍后再评估其优点)
JTree 有两个目的9:28 PM 1. 作为 jos_taxonomy_trees 和 jos_taxonomy_tree_maps 表的代表2. 提供控制功能9:31 PM 路易斯:我可以看到你通过方法实现了表的表示... 控制功能缺失,因为 JLeaf 和 Term 还没有实现...好的,我想这已经完全清楚了... 所以你的问题是关于 JLeaf 和 JTerm 应该使用什么方法,对吗?这是你的问题吗?9:32 PM 我:是的,我的意思是 JTree 有方法和参数但我想为 JLeaf 保持它们分开没有 JTerm(我用错了)路易斯:所以不需要在 JLeaf 中实现 save、bind 和那些东西我:是的路易斯:对吗?我:没错9:33 PM 路易斯:好的... 我明白了我:它们将通过控制功能提供tehy 将通过控制功能提供但我们可以直接从数据库查询中将 JLeaf 作为 loadObject 加载我考虑这一点是因为它将被广泛调用9:34 PM 如果它变得庞大,内存分配将是显著的路易斯:嗯... 描述你如何使用 JLeaf 和 loadObject... 一个代码示例9:35 PM 我:好的,JLeaf 将有像 getLeaves 这样的方法9:36 PM 这个方法将返回路易斯:它的子项列表??9:37 PM 我:$query = "SELECT * FROM #__taxonomy_leaves WHERE tid = $tid'';
$db =& JFactory::getDBO();
$db->setQuery($query);
return $db->loadObjectList();是的,类似于这样直接所以 JLeaf 不会有变量集它们立即从函数返回从函数中返回路易斯:啊... 不是中间类9:38 PM 我:是的,并且不在 JLeaf 类中保存表字段作为变量路易斯:避免实例化 JLeaf我:没错9:39 PM 路易斯:这很昂贵... 嗯...9:40 PM 我:我建议这个还有另一个原因路易斯:好的... 那是什么原因?我:与 JTree 不同,它涉及 taxonomy_trees 和 taxonomy_tree_mapsJLeaf 将与许多表格协同工作leaf_relations, leave_maps, leaf_alias9:41 PM Luis: 嗯.. 复杂表格处理复杂...我:而且操作通常涉及多个表格一次是的而且通常都是原子操作
第3节
以下列表
1. 社区页面(所有链接的主页):https://community.joomla.net.cn/gsoc2009/gartheeban-ganneshapillai.html
已完成的列表
1. 规格、API和时间线已发布到社区网站。
2. SVN 提交已完成。
3. JTree 的第一个版本已提交。
目前正在进行的
1. 阅读Mastering Joomla 1.5 Extension and Framework Development
2. 完成API库
短期待办事项
1. 完成JTree
2. 与导师安排会议,讨论JLeaf的进度和实施
3. 尽快并且经常提交更改