Rephactor和Scisr PHP重构工具有什么区别?

时间:2012-08-25 03:49:12

标签: php refactoring

Rephactor和Scisr都是PHP的自动重构工具。两者都在开发中并提供相同的重构功能。谁能告诉我两种工具的确切区别?

2 个答案:

答案 0 :(得分:2)

我写了Scisr,所以也许我可以提供一些见解。简短的回答是,它们只是不同的工具。它们每个都有一个功能的子集,您可能会发现两个,一个或两个都没有提供您希望的确切功能。每一个都提供了开发人员实现的一组功能 - 即稍微不完整。

答案越长(并且稍微有偏见)就是它们在哲学上是不同的。幸运的是,这两个工具都没有提供很少的介绍性介绍,可以让您了解每个开发人员要创建的内容。 Here is Rephactor'shere is Scisr's

我在尝试了所有可以找到的PHP重构工具(包括rephactor)并对所有这些工具不满意后写了Scisr。 rephactor绝对是我尝试的所有工具中最有用的,但我认为它提出了太多的要求 - 它想要挂钩SVN,测试工具和各种其他东西。这些都是很好的流程,但需要集成意味着我无法选择工具并立即在我的项目中使用它。所以我开始编写一个更简单,单一用途的工具,并且Scisr诞生了。

IIRC我还查看了rephactor的源代码,发现它使用正则表达式和其他我认为不合适的解决方案。不过,我可能会记错了,所以请原谅那句话中的任何不实之处。

另一个考虑应该是产品健康。不幸的是,这两个项目都是或多或少不活跃的。 Scisr最近更新了,我仍然接受拉取请求,但我不再积极地处理它了。 Rephactor最后一次更新是在2009年。

答案 1 :(得分:-1)

2019+答案

看起来两个提到的软件包都自2013年以来就已经失效。但是即时重构的需求仍然存在,因此我想与200 downloads/day分享正在积极开发的2019年替代方案。

2017年,我启动了一个名为Rector的小项目:https://github.com/rectorphp/rector

校长可以为您提供任何手动帮助

只需开箱即用即可:

  • 重命名类,方法,属性,名称空间,常量...任何东西:)
  • 添加,替换或删除参数
  • 添加参数或不带文档块的返回类型声明-仅使用静态分析
  • 从PHP 5.3升级到PHP 7.4
  • 从一个PHP框架迁移到另一个
  • 完成PHP 7.4属性类型声明
  • 将Laravel静态转换为依赖注入
  • ...

这是一个CLI工具,易于使用:

composer require rector/rector --dev
vendor/bin/rector process src --level code-quality

Read more in README