阅读时间 4 分钟 (806 字)

吉吉,您的全新 Joomla! 4 控制台伙伴

April-jiji

在这篇文章中,Alexandre Elisè 展示了全新的 Joomla 4 网络服务。

系统 - 吉吉

吉吉是一个利用 Joomla! 4 网络服务的系统插件,通过添加自定义操作到核心 Joomla! 控制台,而无需“黑客手段”,使用 DI 容器和 Joomla! 4 的其他高级功能。

为什么?

我在 2020 年 12 月开始创建吉吉,因为那时我想有一些证明概念,一个玩具项目来尝试基于 Symfony 控制台的全新 Joomla! 4 控制台。如果您已经了解 Symfony 控制台,您将很快适应 Joomla! 4 控制台。

是什么?

“吉吉”这个名字来源于我想象的一个“可爱的女孩”名字,基于我们喜爱的“Joomla!”的简称,顺便提一下,“Joomla!”是 Open Source Matters 的商标。

如何?

吉吉是一个系统插件,它“添加”或“注册”新命令到默认的 joomla 控制台 cli 脚本 JPATH_ROOT/cli/joomla.php
我可以为那个创建自己的控制台脚本,命名为 JPATH_ROOT/cli/jiji.php,但我想最好只有一个入口点来访问 joomla cli,这样更容易记住。我会听你的意见。愿意听你的反馈。
“吉吉”代码位于插件 src 目录内的库中。
它被命名空间为 AE\Library\Jiji,供应商名称 AE 只是我的首字母缩写,库也被称为 Jiji,就像插件一样,但使用驼峰命名法。
行为目录包含插件使用的所有 Php Traits。Traits 自 PHP 5.4 起就有。基本上,它们是在无关的 Php 类中使用的常见行为。换句话说,当你发现自己一次又一次地将功能从一类复制粘贴到另一类时,它可能是一个很好的 Traits 候选。
这个插件的核心在 AE\Library\Jiji\Console 命名空间中。你会在相应的目录中找到我的第一个控制台命令 HelloSuperJoomlerCommand.php,它只说“Hello Super Joomler”。但更有趣的另一个目录是 Article 目录,其中包含所有与文章相关的命令。

  • GET 所有文章(浏览)
  • GET 通过 id 获取一篇文章(读取)
  • PATCH 通过 id 获取一篇文章(编辑)
  • 通过ID(添加)发表一篇文章
  • 通过ID(删除)删除一篇文章

要删除,必须首先对一个文章执行至少包含类别ID、标题和状态为-2的 PATCH 操作。
示例JSON负载:‘{“catid”:64, “title”:“My edited title”, “state”:-2}
“Jiji”可以使用JSON文件或JSON字符串作为包含正文请求的负载。

说明

1 - zip扩展名位于此存储库的build/目录中。

2 - 将Jiji插件安装为任何其他Joomla! 4扩展。

3 - 按照以下说明操作。

JPATH_ROOT:您的joomla 4网站根目录。使用相关目录的绝对路径替换此路径。

J4X_BASE_PATH:您的Joomla! 4基本URL(例如:https://example.com

J4X_API_TOKEN:您的Joomla! 4 API令牌

您可以使用-n选项非交互式地使用它。

执行基本命令“Hello Super Joomler”

  
php JPATH_ROOT/cli/joomla.php jiji:hello  
  

执行浏览文章命令

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:browse  
  

执行读取文章命令(例如:id=1)

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:read --id=1  
  

执行添加文章命令

使用JSON字符串作为负载

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:add --item-data='{"alias": "my-article","articletext": "My text","catid": 64,"language": "*","metadesc": "","metakey": "","title": "Here's an article"}'  
  

或者更方便地使用JSON文件作为负载

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:add --item-data='path/to/add-article.json'  
  

执行编辑文章命令(例如:id=1)

使用JSON字符串作为负载

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:edit --id=1 --item-data='{"catid": 64,"title": "Here's an another article"}'  
  

或者更方便地使用JSON文件作为负载

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:edit --id=1 --item-data='path/to/edit-article.json'  
  

执行删除文章命令(例如:id=1)

由于这种方式,删除操作必须分两步进行。

1 - 执行编辑文章命令,将您想要删除的文章的状态更改为-2(回收站)。

2 - 执行删除文章命令,删除您想要删除的文章。

删除文章步骤1

使用JSON字符串作为负载

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:edit --id=1 --item-data='{"catid": 64,"title": "Here's an another article", "state": -2}'  
  

或者更方便地使用JSON文件作为负载

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:edit --id=1  --item-data='path/to/delete-step-1-article.json'  
  

删除文章步骤2

  
php JPATH_ROOT/cli/joomla.php -n --base-path=J4X_BASE_PATH --api-token=J4X_API_TOKEN article:delete --id=1  
  

贡献者

欢迎贡献者加入并帮助改进此项目。任何建设性反馈都受欢迎。

在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能并不代表Joomla项目的官方立场。

1
如何学习Joomla - Steven Trooster
追忆 - Fiona Coulter
 

评论

已经注册? 登录这里
暂无评论。成为第一个发表评论的人

通过接受,您将访问由https://magazine.joomla.net.cn/外部第三方提供的服务