【问题标题】:Class "String" not found error in PayPal core sdk在 PayPal 核心 sdk 中找不到类“字符串”错误
【发布时间】:2015-07-22 11:31:46
【问题描述】:

我突然收到以下错误

致命错误:在中找不到类“字符串” \vendor\paypal\sdk-core-php\lib\PayPal\Common\PPModel.php 在第 51 行

最近的 Wordpress 更新有什么变化吗?

【问题讨论】:

  • 为什么 WordPress 更新会破坏由 composer 安装的 PayPal SDK 版本?我不清楚你为什么提出 WP。
  • 该网站已在过去 3 年未更改。唯一改变的是最近的 WP 版本,然后它在 Paypal Checkout 上崩溃了。

标签: php paypal paypal-rest-sdk


【解决方案1】:

好吧,我不确定为什么现在它开始发生在你身上,但我可以看到错误:

一些旧的已关闭错误(#7#34)提到 Zend Optimizer,现在称为 OpCache,这很可能是您的罪魁祸首 - 它有一对设置 opcache.save_comments and opcache.load_comments,必须设置为将 docblocks (/** ... */ cmets) 保存在内存中。由于 SDK 所依赖的 Annotations 在此类文档块中,如果您安装了 OpCache,或者更改了该设置的值,您的应用程序将会崩溃。

【讨论】:

  • 您的答案看起来非常合乎逻辑,并且与我在不同论坛上搜索并在此处看到的结果很接近 stackoverflow.com/questions/24220031/… 但是,您能否建议我如何禁用或给我任何指示来修复此 Zend Optimizer 或OpCache 问题?
  • @WaliHassan 两个 INI 指令的链接是否指针不够?或者,如果您查看higher up the same manual page,您会看到将其完全关闭的设置(尽管这不是必需的,只会减慢您的代码速度)。
  • 我同意你是对的,但刚刚检查了我的服务器,我看不到安装的 opcache。唯一安装的是ionCube。 php -v PHP 5.3.29 (cli) (built: Jan 11 2015 05:19:17) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd., and with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
  • @WaliHassan 那么,也许尝试禁用它?我确信找到“禁用 ioncube”的文档不会那么难。
  • 谢谢,但需要使用 REST API SDK Paypal 更新 SDK
【解决方案2】:

2015 年 3 月左右,PayPal 大赚一笔 PHP-SDK 1.0.0 的变化 部分更改是重命名某些类; PPModel.php 改为 PayPalModel.php

还有很多其他文件重命名。 这是所有重大更改的链接。

https://github.com/paypal/PayPal-PHP-SDK/wiki/Breaking-Changes---1.0.0

你可能还有很多工作要做,而不仅仅是 PP模型。我知道我有 更改 23 个文件和 73 行代码。这是 因为很多类文件都被重命名了。

【讨论】:

  • 不过,这并不能解释给出的特定错误消息。
  • 这正是问题所在。我刚刚更新了 Paypal REST API SDK,然后我不得不修改我的 paypal.php 代码以匹配新的类。
猜你喜欢
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 2013-03-20
  • 2016-10-23
  • 2013-01-10
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
相关资源
最近更新 更多