我不时会在PHPUnit中进行风险测试.通常我可以找到风险测试的原因.但是这个任务可能很耗时,因为我没有看到来自PHPUnit的任何消息,为什么测试被标记为有风险.我只得到这样的东西:
PHPUnit 4.4.5 by Sebastian Bergmann.
Configuration read from phpunit.xml.dist
R...................R.R...
Time: 11,91 seconds, Memory: 42,50Mb
OK, but incomplete, skipped, or risky tests!
Tests: 26, Assertions: 32, Risky: 3.
Run Code Online (Sandbox Code Playgroud)
是否有任何选项告诉PHPUnit显示消息或更好的东西,如堆栈跟踪导致风险标志的代码?完整的风险测试原因列表也可能会有所帮助.
根据问题" 有效电子邮件地址的最大长度是多少? ",地址的最大长度为254.但我想知道显示名称的最大长度是多少:
Display Name <my@examplemailaddress.net>
Run Code Online (Sandbox Code Playgroud)
点击此链接https://www.ietf.org/mail-archive/web/ietf-822/current/msg00086.html,大小无限,但实际上是根据此链接https://www.ietf.org/mail-archive /web/ietf-822/current/msg00088.html大小为72个字符.但我相信这个答案有点过时了?今天合理的限制是什么?
如果达到Google Maps Javascript API V3的配额,有没有人知道通过Javascript或HTTP-Request进行测试的方法?获取为用户显示的错误消息就足够了.
我们启用了结算并为Google Maps Javascript API v3配置了大约100,000的配额,但有时我们会将其分解,有时甚至无法实现.现在我们喜欢使用像nagios这样的工具监控我们的api访问(也许通过使用phantomjs)来获得即时警告.但是,如果我们的配额超出,我找不到任何关于如何测试的信息.
UPDATE2
此处可以找到类似的请求:如何检测到Google地图中是否已达到每天25000个请求限制?
但是只有对API-Console的引用.如果有人设法使用Javascript回退静态地图,我可以修改我的案例的脚本.
更新
以下是谷歌地图的本地化配额错误消息示例,该消息是为用户而不是地图显示的.如果发生这种情况,我宁愿删除maps容器:
我感觉有点尴尬,因为我使用PHP生成邮件正文而不会转义变量.在HTML中我使用htmlspecialchars()或类似函数,命令行escapeshellarg(),但对于邮件?例如这样的事情:
<?php
$usercontent = $_GET['usercontent'];
mail("dummy@nowhere.tld", "My Subject", "My body with $usercontent included");
?>
Run Code Online (Sandbox Code Playgroud)
一个可能的攻击者可能会对上面的脚本做什么,我怎么能防止这样的攻击呢?或者是PHP mail()保存,为什么?
更新
请参考示例:
在迁移到 PHP 7.4 时,我必须处理一些数组函数的不同行为,比如reset()
,current()
或end()
关于 ArrayObject。以下示例产生不同的输出:
<?php
$array = new \ArrayObject(["a", "b"]);
$item = end($array);
var_dump($item);
$array = ["a", "b"];
$item = end($array);
var_dump($item);
Run Code Online (Sandbox Code Playgroud)
使用php 7.4,输出为:
bool(false)
string(1) "b"
Run Code Online (Sandbox Code Playgroud)
在 7.4 之前的 PHP 版本上,输出如下:
string(1) "b"
string(1) "b"
Run Code Online (Sandbox Code Playgroud)
Aend($array->getArrayCopy())
产生一个通知,但如果与变量一起使用可能是一种解决方法。
有没有办法模拟end()
with an ArrayObject
or的行为ArrayIterator
?ArrayObject 可能非常大,迭代到最后可能不是最好的解决方案。
在vim我通常使用quickfix列表作为todo列表的类型来修复错误或重构代码.但是我的工作流程有一些问题:
:cn
多次跳转来比较代码的其他部分,那么查找最后编辑的条目:cp
很困难.:cw
有帮助,但在更大的清单上,它也变得困难.删除固定条目会很有帮助.所以我希望找到一个简单的命令:help quicktext
来添加一个位置到quickfix列表或删除已经修复的条目.但我能找到的只是:cbuffer
或:caddb
.但是在:cw
我收到消息后编辑缓冲区时,它是不可修改的.帮助文本提供了以下解决方案(但我真的不想编写临时文件):
注意:在quickfix窗口中进行更改不会影响错误列表.'可修改'是为了避免进行更改.如果您仍然删除或插入行,则文本和错误号之间的关系会混乱.如果您真的想这样做,可以将quickfix窗口的内容写入文件并使用":cfile"将其解析并用作新的错误列表.
也许:cad
有人可以添加当前行?还是有人在考虑其他工作流程?
如Galera文档所述,群集使用同步复制.但是看得更深一些,有一些声明,Galera只是"几乎"同步.在节点上,提交必须通过"认证"而不是物理提交.我真的需要理解这部分来规划应用程序的体系结构.
所以我现在喜欢以下哪种情况如果有的话:
脚本A UPDATE
在事务中执行约5秒钟,也COMMIT
需要几秒钟.当脚本A立即完成时,脚本B就会出现,例如在一秒钟内在HTTP-POST-Request之后使用HTTP重定向.脚本B查询与脚本A不同的节点.
UPDATE
因为UPDATE
仍然需要大约4秒才能完成.UPDATE
因为COMMIT
当所有节点的状态同步时结束.如果有的话会是哪一个?或者行为是否依赖于配置?
php ×3
email ×2
galera ×1
google-maps ×1
javascript ×1
mariadb ×1
mysql ×1
php-7.4 ×1
phpunit ×1
postfix-mta ×1
security ×1
sendmail ×1
validation ×1
vim ×1