我正在构建一个API,用户请求一个'命令',它被传递给一个类.假设该命令与PUBLIC函数匹配,它将成功执行.如果命令与PROTECTED函数匹配,则需要抛出错误.
这个想法是可以通过将函数从PUBLIC更改为PROTECTED来禁用它们,而不是重命名它们或删除它们.
我目前这样做,但是如果命令是公共的还是受保护的并不重要.
<?php
/**
* Look for Command method
*/
$sMethod = "{$sCommand}Command";
if (method_exists($this, $sMethod))
{
/**
* Run the command
*/
return $this->$sMethod($aParameters);
}
Run Code Online (Sandbox Code Playgroud) 我试图通过PHP中的shell_exec运行的脚本需要设置一个环境变量,其中afaik通过以下方式完成:
export VARIABLE=value
Run Code Online (Sandbox Code Playgroud)
但是,要运行脚本,我不得不这样做:
<?PHP
$sOutput = shell_exec("export VARIABLE=value && my_command_goeth_hereth");
Run Code Online (Sandbox Code Playgroud)
每次运行任何命令时,它都必须导出变量.
这是唯一的方法吗,还是我错过了一个更简单的方法?
我正在使用密码工具模块,其中一部分是使用base64编码/解码.因此,出于显而易见的原因,我有许多变量,其中包括术语"base64".问题是,当我运行PHP_CodeSniffer工具时,它会抛出警告:"变量"... 64"包含数字,但不鼓励这样做".
有没有办法告诉PHP_CodeSniffer忽略这个特定文件的这些警告?我确信有充分的理由避免数字,但在这种情况下,我宁愿使用'base64'而不是'baseSixtyFour' ......
这就是我运行PHP_CodeSniffer的方式:
valorin@gandalf:~/workspace/library$ phpcs --standard=ZEND ./Tools/
FILE: /home/valorin/workspace/library/Tools/Password.php
--------------------------------------------------------------------------------
FOUND 0 ERROR(S) AND 6 WARNING(S) AFFECTING 5 LINE(S)
--------------------------------------------------------------------------------
38 | WARNING | Variable "_bEncryptionBase64" contains numbers but this is
| | discouraged
94 | WARNING | Variable "_bEncryptionBase64" contains numbers but this is
| | discouraged
94 | WARNING | Variable "base64" contains numbers but this is discouraged
95 | WARNING | Variable "base64" contains numbers but this is discouraged
210 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个需要以反向顺序读取日志文件的PHP脚本.
我目前正在做以下事情:
<?php
shell_exec("tac logfile.log > tmpfile.log");
$rFile = fopen("tmpfile.log", "r");
while (!feof($rFile))
{
//logic
}
unlink("tmpfile.log");
?>
Run Code Online (Sandbox Code Playgroud)
这很好用,因为它切换文件中的行的顺序,我从临时文件中读取.
但是,日志文件将变得庞大,我需要保持冗长的历史,所以我需要gzip文件.我发现了'zcat',我希望有'ztac'可以直接插入上面的代码......但我还没有找到它.
任何想法最简单/最好的方法是什么,不需要大量的临时文件和大量的服务器命令?
我正在开发一个API文档系统,并希望动态检查每个命令是否附加了文档.最简单的方法是动态循环每个命令并检查现有文档以匹配它.
我的代码看起来像这样:
public function testMissingDocs()
{
foreach ($aCommands as $sKey => $aOptions)
{
$this->assertNotNull($oDocs->get($sKey));
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题是PHPUnit的StopOnFailure/Error特性,它在第一个断言失败后停止测试.我理解这个功能的原因,我想在大多数测试用例中继续使用它,但对于动态断言/测试,它会让事情变得有点困难.
有没有办法在每个测试的基础上禁用它,所以我可以检查此测试中的每个命令?
我正在构建一个测试脚本,它正在检查一组命令的性能.在测试失败之前,测试脚本需要让它运行一段特定的时间.
我在PHPUnit文档网站上找到了PerformanceTestCase,但是当我尝试使用它时,我发现它的旧功能尚未包含在新版本中.(该文档是PHPUnit 3.0,我的版本是3.5).
PHPUnit 3.5中是否存在此功能的等效物,我该如何使用它?