拱形/joomla-namespace-checker

此包已被废弃,不再维护。未建议替代包。

检查Joomla项目中的命名空间使用是否正确

1.3.1 2020-06-16 11:21 UTC

This package is auto-updated.

Last update: 2024-02-29 03:05:42 UTC


README

迁移到Joomla 3.8.x

此脚本递归扫描目录以查找包含旧类调用(例如JFactory)的PHP文件。

免责声明:请注意,此工具的结果仅作参考,直到Joomla 5发布,这些更改均不是您应用正常工作的必要条件。感谢@anibalsanchez指出这一点(#6)。

顺便提一下,您可以在Joomla自己的仓库中找到新类名的完整定义。

注意:目前我不再积极支持此仓库,因为我不再使用Joomla,但如果您有任何更改或发现任何错误,请随时提交PR。

需求

  • PHP 7.x

用法

使用Composer

将包添加到您的composer.json

composer require --dev vortrixs/joomla-namespace-checker

之后,您可以使用以下命令运行它

vendor/bin/jnsc path/to/your/project/

只要PHP在您的$PATH中,这应该就可以正常工作。

如果不起作用,您可以直接执行PHAR

php vendor/vortrixs/joomla-namespace-checker/bin/jnsc.phar

使用PHAR

最新版本下载PHAR并按以下方式运行

$ php jnsc.phar path/to/your/project

如果找到任何调用,您将得到以下输出

FILE: path/to/your/project/someFile.php
-------------------------------------------------------------------------------------
Line: 12 | Class found: JTable        | Replace with: Joomla\CMS\Table\Table
Line: 21 | Class found: JPlugin       | Replace with: Joomla\CMS\Plugin\CMSPlugin
Line: 47 | Class found: JPluginHelper | Replace with: Joomla\CMS\Plugin\PluginHelper
Line: 56 | Class found: JFactory      | Replace with: Joomla\CMS\Factory
Line: 75 | Class found: JPluginHelper | Replace with: Joomla\CMS\Plugin\PluginHelper
Line: 84 | Class found: JFactory      | Replace with: Joomla\CMS\Factory
-------------------------------------------------------------------------------------

排除路径 & 文件

通过传递--exclude选项来排除目录和文件。

$ php jnsc.phar --exclude=/somepath/,somefile.php,some/other/path/ path/to/your/project

排除非常基础,因此您可能需要调整路径,这也意味着不支持通配符*。

例如,如果您传递--exclude=google,它将过滤出路径或文件名中包含google的任何内容。

为了可靠地过滤整个目录,请将其包裹在/ /中,对于单个文件使用filename.ext

扫描后自动更新文件

使用命令行上的-u选项,在文件中替换类名,在JEventDispatcher、JDispatcherJRequest调用,并应根据建议手动修复。