如何检查php中是否有类外的代码?
假设您在php中有一个类,其中包含函数等。如何检查类外是否没有代码? 我尝试用PHP编写此检查器,并用正则表达式和令牌编写,但没有任何效果:/ 例如何检查php中是否有类外的代码?,php,class,Php,Class,假设您在php中有一个类,其中包含函数等。如何检查类外是否没有代码? 我尝试用PHP编写此检查器,并用正则表达式和令牌编写,但没有任何效果:/ 例 <?php class example { var $name; var $password; function __construct($name, $password) { $this->name = $name; $this-&
<?php
class example {
var $name;
var $password;
function __construct($name, $password) {
$this->name = $name;
$this->password = $password;
}
----Allowed code----
}
----Not allowed code----
?>
此外,我从令牌解析数组中删除了那些在类的开始和结束之间的行。最后,我在数组中搜索与注释、空白等不同的内容
(变量是西班牙语的,如果您不理解某些变量的含义,请随意提问)如果您想从另一个脚本中“扫描”有问题的文件以查看类外是否有任何代码,则可以使用PHP中的ReflectionClass
步骤1:获取在其中定义类的文件名
$class = new ReflectionClass("example");
$fileName = $class->getFileName();
步骤2:获取类定义在文件中占用的代码的开始行和结束行
$startLine = $class->getStartLine();
$endLine = $class->getEndLine();
$numLines = $endLine - $startLine;
步骤3:在步骤1中获得的文件名上使用file_get_contents(),查看在开始行之前或结束行之后是否有任何禁止代码。你必须测试和玩你得到的东西,因为我不知道确切地说,在GestScListIn()和GeDeNeLink()中分别考虑了“开始”和“结束”。
我希望你能明白
从这个答案中提取了一些代码:PHP CodeSniffer是一个可以检查这一点的过滤器。我不确定确切的设置,但我想这是一个检查。但我想自己用PHP编写这个功能,以便在现实生活中检查另一个PHP文件@cgtag。我会使用lint工具,但在PHP中构建它是一个很好的练习。比人们想象的要复杂。也许你应该让我们看看你尝试了什么,这样我们就有了一些可以借鉴的东西。我们不是来写你的代码的,但是很乐意帮助你。我刚刚用我遵循的方法更新了这篇文章,谢谢@非常感谢你!它帮助了我。我刚刚用我遵循的方法更新了这篇文章。
$class = new ReflectionClass("example");
$fileName = $class->getFileName();
$startLine = $class->getStartLine();
$endLine = $class->getEndLine();
$numLines = $endLine - $startLine;