【问题标题】:Autoloading php classes not found未找到自动加载 php 类
【发布时间】:2020-11-03 06:13:27
【问题描述】:

我在我的 php 文件中自动加载类,并且自动加载的可以毫无问题地找到并要求该文件。但是,当我在我的代码中使用该类时,我收到错误“找不到类”。我不明白为什么会发生这种情况,因为可以毫无问题地在自动加载器中找到和需要类文件。任何帮助表示赞赏

require "../square-php-sdk-master/autoload.php";

$body = new \SquareConnect\Models\CreatePaymentRequest()

错误:

Fatal error: Uncaught Error: Class 'SquareConnect\Models\CreatePaymentRequest' not found in C:\wamp64\www\testSite.test\include\order-cart.inc.php

【问题讨论】:

    标签: php class require autoloader


    【解决方案1】:

    您可能在插件文件中使用了一个简短的 php 标签 () 而不是常规标签 (

    <?
    

    改成

    <?php
    

    或者文件中可能没有指定命名空间

    <?php
    
    namespace SquareConnect\Models
    
    class CreatePaymentRequest(){
        ...
    }
    

    【讨论】:

      【解决方案2】:

      检查被自动加载的文件的命名空间。显然,自动加载器能够找到它们,但它们被加载到 SquareConnect\Models 以外的命名空间中...
      你会在加载文件的顶部找到命名空间,确保它说:

      namespace SquareConnect\Models
      

      在许多 Square API 中,它们使用命名空间 \Square 而不是 \SquareConnect,因此也需要检查一下

      【讨论】:

        猜你喜欢
        • 2017-02-01
        • 1970-01-01
        • 2016-05-06
        • 2017-02-28
        • 2020-02-24
        • 2018-04-29
        • 1970-01-01
        • 2014-06-16
        • 1970-01-01
        相关资源
        最近更新 更多