拱形 / joomla-namespace-checker
此包已被废弃,不再维护。未建议替代包。
检查Joomla项目中的命名空间使用是否正确
1.3.1
2020-06-16 11:21 UTC
Requires
- php: >=7.0
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、JDispatcher
和JRequest
调用,并应根据建议手动修复。