系列:开发Joomla! 3.0扩展 - 第二集:开始开发
在这个关于开发Joomla! 3.0组件的教程系列中,为了提供具体的示例,我选择了向您展示创建真实扩展的过程。此组件将在以下文章中引用的配套网站上可供查看和下载。我的目标是编写一个比传统的"Hello World"更复杂的组件,以便涵盖组件开发的全部关键元素。
第0步:准备你的咖啡!
一次又一次,开始你的一天和你的项目都是最好的方式。建立一种常规,一种节奏,你会发现,当你坐下来开始工作时,你的创造力、专注力和编码技能将达到顶峰。
不要忽视在开始工作前保持良好心态的重要性。
第1步:确定你的组件所需的文件
首先,你需要简要概述文件、文件夹、数据库表和关联字段。对于我们的组件,我们将创建以下内容。
组件详细信息
名称: Lendr
组件名称: com_lendr
描述: Lendr是一个兼容bootstrap的Joomla! 3.0组件,允许用户创建个人资料,添加他们的书籍到收藏,查看其他用户的收藏,请求借阅书籍,添加书籍到愿望清单,以及注册特定作品的等待列表。
基本功能
这个新的Lendr组件需要提供以下功能
- 用户账户/基本资料
- 书籍/用户的图书馆
- 书籍愿望清单
- 借阅/借阅书籍
- 请求借阅书籍
- 已借出书籍的等待列表
在这个阶段,我们需要确定所需的基本文件结构和组织。此列表并不完整,随着项目的进展,我们肯定会对其进行修改。尽管如此,一开始就有一个良好的概览将帮助您保持方向。以下是Lendr组件所需的关键文件的初步草案。
基本文件
控制器/Controllers | 模型/Models | 视图/Views | 表格/Tables | 其他/Misc. |
---|---|---|---|---|
保存/Save |
书籍/Book |
书籍/Book |
书籍/Book |
安装/Install |
现在我们已经列出了文件,草稿也准备好了,我们需要开始组织这些文件到我们的文件夹中。
第2步:创建数据库的表格文件
我们从编写数据库表格文件开始。我们将它们存储在我们组件的“site”部分的“table”文件夹中。请参阅本系列的第一篇文章,以回忆本地环境的配置。我们将创建之前草拟的每个文件。
以下是一个这样的文件
/joomla_root/administrator/components/com_lendr/admin/install.mysql.sql [点击查看代码]
在我们的例子中,我们的表格文件只包含一个名为 constructor 的函数。它允许我们确定与JTable文件关联的表名,并定义主键字段:book_id。
在创建数据库表格时,开始创建 install.mysql.sql 脚本的过程也是有益的,该脚本将在通过Joomla!管理控制台安装组件时使用。以下是该文件的最初几行
/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!在安装过程中使用的文件。它们位于您的组件的“site”和“admin”文件夹之外
- XML 文件用于定义组件的详细信息以及关联的文件、菜单和语言。
- install.php 文件包含在安装过程中执行的功能。其名称可能不同,但无论如何,该名称必须正确定义在XML文件中。这些功能不必被使用或存在,但在安装组件时执行额外操作可能是有用的。
示例文件
lendr.xml [Cliquer pour voir le code]
install.php [Cliquer pour voir le code]
根文件 - lendr.php
位于site目录根目录下的lendr.php文件,是Joomla!安装后首先识别和读取的第一个文件。此文件管理任务的重定向到其他控制器,加载helper文件、样式表、JavaScript、插件库和内核的其他必需元素。这些内容将在下一篇文章中详细介绍。
此文件允许加载与组件相关的表,导入“Lendr”插件组中存在的所有插件,确定用户请求的控制器,然后根据该请求执行相应的命令。
控制器
在Joomla! 3组件中,控制器作为类创建,具有唯一的功能。通常,控制器的名称表明它应该执行的任务。与Joomla!先前版本相比,这是一个重大变化,因为在先前版本中,一个控制器执行与组件特定领域相关的各种任务。创建具有单个功能的控制器提供了将控制器链接起来的机会,并简化了特定操作或错误的搜索。下面是Lendr组件中的一个控制器示例以及包含基本功能的默认控制器。
示例
edit.php [Cliquer pour voir le code]
default.php [Cliquer pour voir le code]
视图控制器
Joomla!生成视图的方式相对独特。Joomla!使用次级控制器来帮助渲染数据和分配用于视图显示的变量。此次级控制器位于组件的views目录中,其标题通常可以提供所需渲染类型的线索(例如,html.php用于HTML渲染,phtml.php用于模板部分的渲染,raw.php用于渲染原始数据等)。以下是用于Lendr的控制器视图之一。
示例
html.php [Cliquer pour voir le code]
raw.php [Cliquer pour voir le code]
第5步:创建模型
Joomla!中的模型与大多数MVC系统的模型功能相同,允许操作和检索数据。我们将在下一篇教程中更详细地介绍Lendr的模型。现在,让我们关注一下总体结构。
示例
book.php [Cliquer pour voir le code]
default.php [Cliquer pour voir le code]
这只是为Lendr组件创建的模型文件的两个示例。其他模型文件具有相同的性质和结构。我们将在下一篇教程中编写并详细解释它们。
本部分总结:开始开发
到目前为止,我们已经创建了组件的基本结构,编写了数据库表、安装文件、控制器、视图控制器以及模型,以便我们的组件可以安装。当然,我们还没有创建功能,我们的组件就像一个“空壳”,但能够安装组件是多么令人高兴。
请访问我们的GitHub存储库以获取其他数据库表、控制器、视图控制器和模型的代码,这些代码我们没有在本教程中编写和概述。
我邀请您查看完整的教程,其中包含可重用的代码部分,地址为http://lendr.sparkbuilt.com。
在下一篇教程中,我们将专注于编写要集成到不同模型中的功能。
《Joomla社区杂志》上发表的一些文章代表作者对特定主题的个人意见或经验,可能不与Joomla项目官方立场一致
通过接受,您将访问由https://magazine.joomla.net.cn/外部的第三方提供的服务
评论