《Joomla! 3.0 扩展开发系列:入门开发》
为了有一个好的工作示例来介绍本教程系列关于 Joomla! 3.0 组件开发,我决定通过实际编写一个扩展来介绍这个过程。这个组件可以通过访问本文和未来文章中提到的相关网站进行查看和下载。我的目标是编写一个比简单的“Hello World”组件更健壮的组件,以充分展示组件开发中的关键点。
第 0 步:泡咖啡
再次强调,开始你的一天和项目是很重要的。养成一种模式,一种节奏,很快你就会发现,当你坐下来开始工作的时候,你的创造力、专注力和编码技巧都准备好了。不要忽视开始工作时保持正确的心态的重要性。
第 1 步:为所需文件编写基本组件大纲
首先要做的是创建一个粗略的概述,包括文件、文件夹、数据库表和关联字段。对于我们的组件,我们将创建以下系统。
组件详细信息
名称: Lendr
组件名称:com_lendr
描述:Lendr 是一个基于 Bootstrap 的 Joomla! 3.0 组件,允许用户创建个人资料,将书籍添加到他们的图书馆收藏,查看其他用户的图书馆,请求借阅书籍,添加想要的书到愿望单,以及注册成为特定书籍的等待列表。
基本功能
这个新的 Lendr 组件将提供以下功能集
- 用户帐户/基本个人资料
- 书籍/用户的图书馆
- 愿望单
- 借阅/还书
- 请求借阅书籍
- 等待已借出书籍的列表
现在我们应该写下所需的基本文件结构。这不会是一个详尽的列表,而且在整个过程中肯定会进行修改。但是,拥有一个起点的大纲将有助于使事情保持一定的方向。以下是 Lendr 需要的关键文件的初始大纲。
基本文件
控制器 | 模型 | 视图 | 表格 | 其他 |
---|---|---|---|---|
保存 |
书籍 |
书籍 |
书籍 |
安装 |
现在我们已经将这些内容写出,并有了大致的框架,我们就可以开始创建这些文件了。
步骤 2:编写数据库表格文件
我们首先创建数据库表格文件。我们将这些文件存储在组件前端的表格文件夹中。请参考本系列的第一个文章,回忆一下您的本地环境应该如何配置。我们创建我们在大纲中描述的每个文件。下面是其中一个文件。
/joomla_root/components/com_lendr/site/tables/book.php [点击查看源代码]
在我们的情况下,表格文件包含一个单构造函数。这个函数提供了与这个JTable文件相关联的表名,并在该文件中定义了主键字段,book_id。
在创建这些数据库表格的过程中,开始创建用于通过Joomla!管理员面板安装组件的install.mysql.sql脚本是合适的。该文件的开始如下所示
/joomla_root/administrator/components/com_lendr/admin/install.mysql.sql [点击查看源代码]
我们将在创建表格的过程中继续添加到这个文件。通过在创建表格时添加这些表格,将使得在组件编译时安装更容易。
步骤 3:开始创建组件文件夹和文件
在创建数据库表格后,我们为整个组件设置文件结构。下面是基本的目录结构。
com_lendr/
admin/
controllers/
models/
views/
index.html
install.mysql.sql
lendr.php
site/
assets/
controllers/
helpers/
language/
models/
tables/
views/
index.html
lendr.php
router.php
install.php
lendr.xml
这些文件和文件夹都很重要,尽管不是所有的都是必需的。我们将开始逐一处理这些文件和它们包含的函数。在这个过程中,我们将解释每个的用途。
步骤 4:编写安装文件、根文件、控制器和视图控制器
在这个步骤中,我们将向几个文件添加内容。首先,我们将查看安装文件,然后我们将处理一些控制器,最后我们将添加我们的视图控制器。
安装文件
根级别的文件是在安装过程中由Joomla!使用的文件。它们位于组件文件夹的站点和admin文件夹之外。有一个XML文件用于定义组件的详细信息,以及所有相关文件、菜单和语言;还有一个install.php文件。这个install.php文件包含在安装时运行的许多函数。名称不是特定的,但必须在XML文件中正确引用。这些函数不必使用或存在,但可以在组件安装期间执行额外的操作。
示例文件
lendr.xml [Click to view source]
install.php [Click to view source]
根文件(lendr.php)
站点根目录下的lendr.php文件是Joomla!在安装后首先识别和读取的文件。这个文件处理将任务重定向到其他控制器,加载辅助文件、样式表、javascript、插件库和其他在整个组件中必需的核心组件。它将在本系列的后续教程中进一步扩展。
这个文件将加载与该组件相关的表格;导入存在于“lendr”插件组中的任何插件;确定用户请求的控制器,然后根据该请求执行适当的控制器。
控制器
在Joomla! 3组件中,控制器作为一个具有单个函数的类被创建。通常,控制器名称定义了控制器的任务。这与之前版本的Joomla!不同,之前版本的控制器专门用于组件特定区域的多个任务。通过创建具有单个可执行函数的控制器,可以更好地将控制器链接在一起,形成一个易于跟踪动作和故障排除的路径。以下是我们将为Lendr定义的一个控制器示例,后面是我们的默认控制器,用于实现一些基本功能。
示例
edit.php [Click to view source]
default.php [Click to view source]
视图控制器
Joomla!在处理视图方面有点独特。Joomla!使用一个二级控制器来帮助渲染数据和将变量分配给视图布局。这个二级控制器位于组件的视图文件夹中,通常与期望的渲染类型类似命名。(例如,html.php用于渲染HTML,phtml.php用于渲染部分模板,raw.php用于渲染原始数据等...)。以下是Lendr使用的视图控制器之一。
示例
html.php [Click to view source]
raw.php [Click to view source]
第5步:创建模型
Joomla!模型与大多数MVC系统类似,负责大量数据处理和数据检索。在下一教程中,我们将重点介绍Lendr模型,所以在这里我们只看看一般结构。
示例
book.php [Click to view source]
default.php [Click to view source]
这些Joomla!模型只是Lendr组件系统将创建的文件中的两个。其他模型在性质和基本结构上相似,但将在下一教程中详细介绍。
开发总结
现在我们已经创建了组件的基本文件夹结构,编写了数据库表、安装文件、控制器、视图控制器和模型,我们的组件应该是可安装的。当然,尽管目前还没有功能,组件只是一个空壳,但有一个可安装的组件仍能带来一定的成就感。请确保检查我们的GitHub存储库,以查看其他未在此处编写的数据库表、控制器、视图控制器和模型。
在http://lendr.websparkinc.com查看带有代码片段的完整教程。
在下一教程中,我们将深入探讨要写入各种模型的实际功能。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不与Joomla项目的官方立场一致
通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部第三方提供的服务
评论