问题标签 [php-7.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1835 浏览

laravel - 静态类方法的部分模拟不起作用

我试图在一个类上模拟一个静态方法。但是,如果我调用模拟方法,则不再找到类变量。似乎整个班级都被嘲笑并被makePartial()忽略了。

我在一个空白的 laravel 项目中创建了一个错误案例。以下是相关代码:

另一个控制器:

静态控制器

示例测试

使用测试\TestCase;

输出:

如您所见,$staticArray即使它是在原始类中定义的,也找不到了。

任何帮助深表感谢!

0 投票
1 回答
66 浏览

php - 如何将 PHP 从 7.0.32 回滚到 7.0.30?

上周我像往常一样进行了“apt upgrade”,但这次我忘记创建完整的系统映像以防万一发生任何事情。

发生什么了?我的系统非常不稳定。当然。

所以我想知道是否有办法将特定版本的 PHP(7.0.32)回滚到以前的版本(7.0.30)。

我在网上没有找到任何东西,只是在 StackOverflow 和其他教导如何回滚整个版本的网站中的链接,例如 7.1 到 7.0 或 7.2 到 5.6 等等。

我有root访问权限和一切。有人有任何提示吗?

谢谢!

0 投票
1 回答
339 浏览

docker - 在 docker php:7.0-apache-stretch 中安装 php7.0-sybase

在我的容器上(来自 php:7.0-apache-stretch)

结果 :

文件 /etc/apt/sources.list :

如何安装这个包?

谢谢

0 投票
3 回答
290 浏览

php - 黑白可数对象和不可数对象有什么区别

我正在尝试找出 b/wa 可数对象和不可数对象的区别

首先我发现了对象的类型

这是一个Object

但是当我检查它是否是可数对象时

然后它返回

下面是对象内容

因此,如果根据 Php 7.2,现有对象不可数,我如何将其转换为可数,因为我的代码在 Php 7.0 上运行良好。

0 投票
2 回答
380 浏览

php - CakePHP 3 shell脚本增加执行超时限制

我是cakephp 3的新手,我正在使用它和 php 7.0 开发一个应用程序。

我在/app/src/Shell有一个 shell 脚本,它连接到 Web 服务并使用 JSON 数据。

问题是,检索数据需要 30 多秒。

我已经尝试更改max_execution_timeat /etc/php/7.0/cli/php.ini/etc/php/7.0/apache2/php.ini,但没有成功。

我错过了什么吗?cakephp 中是否有需要更改的配置?

谢谢。

0 投票
0 回答
527 浏览

php - 找不到类“GearmanClient”。已安装扩展 gearman.so

我的 Symfony 2 应用程序出现以下错误。

Fatal error: Class 'GearmanClient' not found

更多信息:

  1. 来自php -m列表的结果gearman

    /li>
  2. 结果来自php --info | grep gearman

    /li>
  3. 我还用以下代码制作了一个新文件:

    在网页上输出:

    没有像GearmanClient not found.

    /li>

我不明白的是:

现在已经安装了 gearman 扩展,甚至可以通过测试应用程序找到 GearmanClient。为什么我的 symfony 应用程序会抛出这个错误。

我正在使用supertag/gearman-bundle

提前致谢。我真的很感激任何帮助。

0 投票
0 回答
598 浏览

informix - PHP7.0 & Informix 数据库连接

我正在尝试通过 php7.0 远程连接到 Informix db 我在 Ubuntu 16.04 上已经下载了 Informix CSDK 并完成了默认安装,这是 informix 的路径:

/opt/IBM/Informix

还下载了 PDO_INFORMIX-1.3.1,根据 IBM 手册,下一步是编译我遇到问题的地方:我运行的命令是:

  1. php化

2 ./configure --with-pdo-informix=/opt/IBM/informix`

出错configure: error: Cannot find php_pdo_driver.h

编辑:

我成功配置了驱动程序。使用此链接: https ://github.com/BitDesert/pdo_informix-php7

现在,当我连接到远程 Informix DB 时,我收到了这个 PHP 错误:

致命错误:未捕获的 PDOException:SQLSTATE=HY000,SQLDriverConnect:-11005 [Informix][Informix ODBC 驱动程序]未指定的系统错误 = -11005。在 /var/www/html/informix.php:7 堆栈跟踪:#0 /var/www/html/informix.php(7): PDO->__construct('informix:host=3...', 'ReadOnly ', 'nowriting') #1 {main} 在第 7 行的 /var/www/html/informix.php 中抛出

尚无法找到解决方案。任何帮助将不胜感激。

0 投票
1 回答
241 浏览

laravel-5.5 - getStream laravel 集成 FeedConfigException

我正在尝试为 laravel 集成 getStream。我已按照以下链接中提到的所有步骤进行操作。 getstream Laravel 集成教程

认为本教程很好,我很难获得提要工作的响应。当我访问提要 url 时,显示以下错误

在 getStream 仪表板中,日志显示

请求格式不正确或无效。

在此处输入图像描述

知道问题可能是什么吗?

0 投票
1 回答
120 浏览

php - PHP - 将匿名函数分配给其自己函数内的变量并使用它

所以我正在尝试做这样的事情:

但它抛出一个错误说:

函数名必须是字符串

我也试过这样调用函数:

而且它也不能正常工作。

我不能做我正在做的事情有什么原因吗?

编辑

好像是原代码有问题,而不是我写的例子

这是我的真实代码:

此行中抛出错误:

0 投票
0 回答
1159 浏览

laravel-5 - Laravel 5.5 为什么删除方法中的外键违规不会引发异常?

更新 3:9 个月前的这个问题在 Laragon 环境中的 Windows 10 上的 Laravel 5.8 和 Postgresql 11 以及 Ubuntu 机器上的 Apache 2.4 上仍然存在。Eloquent Model 实例 delete() 方法是否只是忽略外键约束?莫名其妙:

我在 Postgresql 9.3 数据库、公司和站点中有两个表。一方面,它们与公司之间存在一对多的关系。如果已将站点分配给公司,则有一个外键约束可防止删除公司。如果我尝试直接在数据库上使用 SQL 查询删除 ID 为“KSL”的公司,则会收到预期的错误:

错误:表“companies”上的更新或删除违反了表“sites”上的外键约束“sites_company_id_fkey” 详细信息:键(company_id)=(KSL)仍然从表“sites”中引用。

我已经定义了一个工匠命令,它的处理方法有一个简单的 try/catch 块:

当我从控制台运行命令时,我收到了预期的错误消息:

SQLSTATE [23503]:外键违规:7 错误:表“companies”上的更新或删除违反了表“sites”上的外键约束“sites_company_id_fkey”详细信息:键(company_id)=(KSL)仍然从表“sites”中引用. (SQL:从“company_id”= KSL 的“companies”中删除)

反映 Postgresql 生成的本机错误消息。但是,当我使用 Ajax 调用使用类似的 try/catch 块从 Controller 调用 delete 方法时,没有捕获到异常并且调用失败并且没有错误的详细信息。我简化了控制器方法,使其与控制台处理程序相同:

通常我会从请求参数中获取 $id 的值。如果我在浏览器中使用带有 RESTful URL 的 get 请求,我会在 Firefox 中收到“连接已重置”消息,在 Chrome 中收到类似消息。我已经提到了我的一个老问题,我认为它有解决方案,但运行composer dump-autoload没有效果。我已经清除了缓存,重新安装了 Laravel 5.5,更新了我的安装,并再次调用composer dump-autoload了几次,但没有任何异常或记录的错误消息让我没有任何线索。此开发应用程序的 Debug 设置为 true。

我在 bootstrap 文件夹的 autoload.php 文件中向 PHP 原生函数 register_shutdown_function 传递了一个处理程序:

crash.log 中仅出现“NULL”一词。我检查了 Apache 2.4 error.log 文件和这个 Laravel 应用程序的特定错误日志,但那里没有记录相关详细信息。

这是异常处理程序:

更新 1:我从这个问题中得到了一个线索:Stack size for Apache under Windows。我很快测试了我的在线应用程序(都在 Linux 机器上运行),没有任何问题。异常被正确抛出,并为用户显示一条清晰的消息。我的本地环境是 Windows,看起来 Apache 比 Linux 环境更容易受到这种连接重置错误的影响。正如该问题的答案所建议的那样,我已经增加了 Apache 中的堆栈大小,但它仍然不起作用。我仍然收到连接重置错误。我已经使用 Apache 休息室的最新二进制文件重新安装了 Apache,我正在运行 PHP 7.3。任何人都可以对此有所了解吗?

更新2:卢卡斯对这个问题的回答鼓励我改变服务器。当我php artisan serve从控制台运行然后调用该ParentTable->delete()方法时,我得到了预期的异常而没有崩溃。我的 Apache 配置显然有问题。不幸的是,该问题的公认答案并不能解决我的问题。我增加了堆栈大小,但问题仍然存在。