使用PHPUnit测试我的控制器时遇到一些问题.
到目前为止我正在编写的代码是实现$_POST或其他请求变量:
$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST = array(
'test' => true
);
Run Code Online (Sandbox Code Playgroud)
大多数测试都以这种方式完美运行,直到我遇到使用filter_input_array函数的方法:
$_SERVER['REQUEST_METHOD'] = 'POST';
$_REQUEST = $_POST = $GLOBALS['_POST'] = array(
'test' => true
);
// ....
var_dump(filter_input_array(INPUT_POST));
Run Code Online (Sandbox Code Playgroud)
空值
我不愿意filter_input从我的代码中删除函数,但我无法让它们在测试中工作.
版本:
PHP 5.5.9-1ubuntu4.9(cli)(内置:2015年4月17日11:44:57)
Apache/2.4.7(Ubuntu)
PHPUnit 4.6.6作者:Sebastian Bergmann和贡献者.
任何帮助将不胜感激.
设置$_SERVER有CONTENT_LENGTH和CONTENT_TYPE没有解决的问题.我的PHP版本不允许我php://stdin按照PHP 5.6.0 chagelog中描述的方式编写(或者我理解它),但是file_put_contents(STDIN,..)成功但无论如何都不起作用.
因为它是一个phpunit测试,也许有一些phpunit.xml我还不知道的注释或条目,可以用php-cgi POST设置方式解决这个问题.
根据PSR-2标准,是否有客观原因使用空格而不是制表符来缩进文件,有人可以提供:
PSR-2标准的基础?
PSR-2标准的作者想到的不仅仅是"外观和感觉",不仅仅是基于观点的东西,很多人都难以理解为什么在团队合作中空间更好.
根据Farsides的回答:存储库事物可能是为什么空间在PSR-2中被解释为缩进工具的确切情况.PSR-2是为协助团队合作而开发的标准.行开头处的单个意外空间 - 使用制表符时 - 可能在IDE中不可见,并且可能会潜入存储库.如果有几个人在同一个文件上工作,很可能会产生不必要的冲突.使用空格而不是标签可以轻松捕捉到眼球上的这种意外空间,这可能是一个原因,为什么使用它们成为标准.
我正在处理以下代码,以便从表单中选择复选框.如果我检查第一个复选框,一切都很好.如果我检查另一个复选框,我在发送bulkcopy表单时会收到"未定义的索引"错误.请记住,我正在使用post方法获取复选框,并且由于表单位置和字段的复杂性,提交按钮位于复选框上方.我需要的是选择多个复选框并将某些值添加到数据库.
<?php //bulkcopy.php
session_start();
if($_SESSION['admin_logged_in'] != true){
header("Location:login.html");
exit();
}
include 'db.php';
$from = mysql_real_escape_string($_GET['from']);
$room = mysql_real_escape_string($_POST['room']);
if(!empty($_POST['id'])) {
foreach($_POST['id'] as $check) {
$id = $check;
$sel = mysql_query("select * from $from where id = '$id' limit 1 ") or die(mysql_error());
while($row = mysql_fetch_array($sel)){
$preview = $row['preview'];
$text = $row['text'];
$title = $row['title'];
$images = $row['images'];
}
$ins = mysql_query("insert into $room (id, preview, text, title, images) values (' ', '$preview', '$text', '$title', '$images') ") or die(mysql_error()); …Run Code Online (Sandbox Code Playgroud) Ubuntu 16.04 PHP 7.0.4 Phalcon 2.1.x Zephir
$~: php -v
PHP Fatal error: Class 'jsonserializable' not found in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
在php.ini中添加phalcon.so时
我为我自己的Cloud 应用程序编写了一个REST 接口。我有一个方法getFileFromRemote($path)应该返回一个包含文件内容的 JSON 对象。不幸的是,这只在我指定的文件$path是纯文本文件时才有效。当我尝试调用图像方法或PDF状态代码为 200 但响应为空时。为了返回文件内容,我使用它file_get_contents来检索内容。
注意:我知道 ownCloud 有一个 WebDAV 接口,但我只想用 REST 来解决这个问题。
编辑 这是代码服务器端(ownCloud):
public function synchroniseDown($path)
{
$this->_syncService->download(array($path));//get latest version
$content = file_get_contents($this->_homeFolder.urldecode($path));
return new DataResponse(['path'=>$path, 'fileContent'=>$content]);
}
Run Code Online (Sandbox Code Playgroud)
第一行检索在 ownCloud 服务器上下载内容并完全正常工作。