【问题标题】:PHP message: PHP Fatal error: Uncaught Error: Class 'Twilio\TwiML' not found inPHP 消息:PHP 致命错误:未捕获的错误:未找到类 'Twilio\TwiML'
【发布时间】:2018-07-09 15:48:43
【问题描述】:

我收到了这个错误。

我在我的 centos 7 服务器中编写 Twilio SDK。

这是我的错误 php 文件的代码

<?php
require __DIR__ . '/vendor/autoload.php';
use Twilio\TwiML;

// Start our TwiML response
$response = new TwiML;

// Read a message aloud to the caller
$response->say(
    "Thank you for calling! Have a great day.",
    array("voice" => "alice")
);

echo $response;

我能做什么??

【问题讨论】:

  • 您能否确认您看到了包含 Twilio 库的 vendor 文件夹?看起来您可能缺少已安装的库。

标签: php twilio fatal-error


【解决方案1】:

该类名为Twilio\Twiml

在linux上,如果大小写不正确,将找不到文件。

【讨论】:

【解决方案2】:

如果有人遇到这个问题...普通的 Twiml 类已被弃用:https://github.com/twilio/twilio-php/pull/498/commits/64227acd17dd76bcaea0d94ccb930d571d4c2b67

我花了一点时间才明白这里发生了什么,而且他们的文档还没有更新来解决这个问题,这很烦人。或者可能是,但我没有看到,在撰写本文时,他们的示例仍然引用了已弃用的示例。

Twilio\TwiML 现在是一个抽象,并由您将开始使用的类扩展,而不是旧的 Twiml。

例如:

$s = new Twilio\VoiceResponse; // also you can use Messaging or Fax
$s->say('Hello World');
echo $s;

参考 /vendor/twilio/sdk/Twilio/TwiML/{Type}Response.php

【讨论】:

    【解决方案3】:

    您的代码是正确的,我参考此代码示例测试了自己: https://github.com/TwilioDevEd/api-snippets/blob/master/guides/voice/respond-incoming-calls-guide/respond-no-parameters/example.5.x.php

    确保您在 Composer 中拥有最新的 PHP SDK 包或正确包含它,我的预感是这是您错误的根源。

    【讨论】:

      【解决方案4】:

      其实文档需要更新或者代码需要修改。 TwiML 类是抽象的,而需要使用 Twiml 类。也可以使用 VoiceResponse 类。

      唯一的问题是 5.x 版中使用语句的位置:

      使用 Twilio\TwiML\VoiceResponse; 使用 Twilio\Twiml;

      【讨论】:

        【解决方案5】:
        use Twilio\TwiML\MessagingResponse;
        
        $response = new MessagingResponse();
        

        1) 如果您正在处理消息传递,则此代码将起作用 或者,如果您从事语音响应工作,则使用 VoiceResponse 而不是 MessagingResponse。

        2) 这将起作用,并确保您已为其安装了正确的库。

        【讨论】:

          猜你喜欢
          • 2023-03-25
          • 1970-01-01
          • 2018-04-19
          • 1970-01-01
          • 1970-01-01
          • 2018-01-04
          • 2022-12-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多