JdevTools 旨在帮助开发者创建组件。在扩展开发过程中,许多任务非常重复,例如设置文件、创建数据库表以及为 MVC 结构编写类。使用 JDevTools,可以轻松自动化此过程,通过创建简单的脚本来处理过程,或使用已经制作的脚本。JDevTools 将包括以下工具:

  • 设置文件
  • 创建 MVC 模板代码
  • 设置表并将组件注册到数据库中
  • 创建用于获取和显示数据的通用函数
  • 创建管理表和表单
  • 创建分页
  • 创建语言文件
  • 打包扩展

如何工作

JDevTools 的目的是创建一个环境,让开发者可以轻松执行脚本、编写自己的脚本和使用其他人的脚本。将持续添加新的脚本,但任何人都应该能够轻松编写自己的脚本。

JDevTools 的基础是一个应用程序(类似于 Joomla 安装程序),它将引导用户通过 4 个步骤来创建组件

  • 选择脚本或创建新脚本:在这里,用户将看到一个脚本列表,实际上是 JDevTools 脚本目录中的 PHP 文件集合
  • 验证并运行脚本:这里会出现一个关于信任脚本提供者的简短警告。脚本将显示在文本字段中,用户可以检查是否正常,并根据需要修改。将放置一个按钮来执行脚本。提供此步骤的原因是让用户意识到创建脚本或更改脚本是一件相对简单的事情
  • [可选] 脚本输入:如果脚本需要用户输入,它将在此页面的表单中显示,用户可以填写详细信息并点击确定
  • 显示脚本执行中的任何错误或表明脚本已无问题执行的页面

这将使开发者能够通过点击几次,提供一些输入并点击运行来创建组件的基础。需要注意的是,这不会单独创建一个可工作的组件。它仅仅为开发组件提供了一个易于扩展的基础。

脚本

脚本是一组任务,例如为组件创建所有文件,或者在数据库中注册一个组件。在这个项目中,我将创建一些基本脚本,但主要目标是让脚本过程保持透明,以便开发者可以轻松地扩展现有脚本或创建他们自己的脚本。

在JDevTools中可以运行的每个脚本基本上是一组我们通过api提供的任务集合。这些任务简单、原子,并涵盖了创建组件的方方面面。

文件创建(这些函数实际上只是创建具有正确名称和位置的文件)

  • 创建控制器
  • 创建视图
  • 创建模型
  • 创建模板
  • 创建选项xml文件
  • 创建模块
  • 创建插件

代码创建(向文件中添加代码)


  • 添加控制器模板代码
  • 添加视图模板代码
  • 添加模型模板代码
  • 创建分页
  • 创建获取器(从某个表中获取一行数据)
  • 创建列表(从数据库中获取行并显示它们)
  • 创建表格

数据库设置


  • 创建数据库表
  • 用joomla设置组件

打包


  • 打包组件
  • 打包模块
  • 打包插件

重要的是要理解,这不一定是一个详尽的列表。在开发过程中,如果这样做更有意义,某些任务可能会被分成两个原子任务,或者合并为一个。重要的是为脚本打下一个坚实的基础。而不是具体包括哪些任务,因为新的任务总是可以稍后添加。在开发过程中,我将对建议持开放态度,并且当我开始实际操作时,我期待获得大量关于新任务的灵感。



AdminList库

除了脚本之外,JDevTools还将提供一个用于更容易创建管理表的库。该库通过整合数据过滤、ajax处理常见任务(如发布/取消发布)和快速编辑以实时更改数据,使得创建表格变得更加容易。构建一个管理表应该是一个指定每列内容的问题,然后让joomla处理其余部分。实际上,一种可能的实现方式可能如下所示



    $table = new Table($items,$pagination)
    $table->col("name")->edit()
    $table->col("area_id")->db("#__areas","name")->label("Area");
    $table->col("description")->truncate(50);

然后在模板中



    echo $table

这将创建一个具有3列(除了id和复选框)的表格,



  • 一列显示名称(即,访问 $item[n]->name 对于所有n的值)并作为编辑页面的链接(这就是edit()方法的作用)
  • 一列显示区域名称并发送一个sql请求到 #__areas 表以获取具有特定area_id的名称,最后将标题作为"区域"而不是"area_id"
  • 一列显示截断到大约50个字符的描述

然后一个__toString方法将渲染表格,填充


信息。



总结

本项目的主要关注点在于提供一个灵活且可扩展的基础。一开始很难做到完美,但借助JDevTools,我希望强大的基础能够让我们逐步实现一些非常有用的功能。从实际角度来说,这意味着编写代码时必须考虑到可扩展性。任务必须遵循常见流程,易于添加且直观。脚本必须简单易懂且易于创建。库和API必须易于使用且易于扩展。有了坚实的基础,我非常有信心这对使用Joomla的网页开发者来说可以成为一个非常有价值的工具。