Как отлаживать автозагрузчик PHP composer - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь использовать библиотеку HiPay php. Я установил библиотеку с:

composer require hipay/hipay-fullservice-sdk-php

В результате получается каталог поставщика с библиотекой HiPay. В моей странице order.php я использую

<?php
namespace TokenizationExample;

require __DIR__ . '/config/credentials.php';
require __DIR__ . '/vendor/autoload.php';

$config = new \HiPay\Fullservice\HTTP\Configuration\Configuration($credentials['private']['username'], $credentials['private']['password']);

но я получаю сообщение об ошибке Class Not Found на

$config = new \HiPay\Fullservice\HTTP\Configuration\Configuration($credentials['private']['username'], $credentials['private']['password']);

Он работает на моем локальном компьютере win 10 с XAMPP, но не работает, когда я загружаю код на свой хостинг. У меня есть проверка на совпадения в именах файлов, но я не могу определить, что не так.

Это ошибка:

Fatal error: Uncaught Error: Class 'HiPay\Fullservice\HTTP\Configuration\Configuration' not found in /home/XXXXX/order.php:8 Stack trace: #0 {main} thrown in /home/XXXXX/order.php on line 8

и каталог поставщика, созданный композитором

vendor dir from filezilla

но как я могу понять, что не так? И отладить autoload.php? Извините за вопросы новичка. Я новичок в PHP

Обновление 1:

Я сделал "print_r" из автозагрузчика

$autoloader = require __DIR__ . '/vendor/autoload.php';
print_r($autoloader,true)

и получил этот результат с хостинг-сайта, если он не работает

Composer\Autoload\ClassLoader Object
(
    [prefixLengthsPsr4:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
            [H] =&gt; Array
                (
                    [HiPay\Fullservice\] =&gt; 18
                )

        )

    [prefixDirsPsr4:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
            [HiPay\Fullservice\] =&gt; Array
                (
                    [0] =&gt; /home/XXXXX/vendor/composer/../hipay/hipay-fullservice-sdk-php/lib/HiPay/Fullservice
                )

        )

    [fallbackDirsPsr4:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
        )

    [prefixesPsr0:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
        )

    [fallbackDirsPsr0:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
        )

    [useIncludePath:Composer\Autoload\ClassLoader:private] =&gt; 
    [classMap:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
        )

    [classMapAuthoritative:Composer\Autoload\ClassLoader:private] =&gt; 
    [missingClasses:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
        )

    [apcuPrefix:Composer\Autoload\ClassLoader:private] =&gt; 
)

единственная разница между неработающими и работающими локальными сайтами XAMPP print_r -

[prefixDirsPsr4:Composer\Autoload\ClassLoader:private] =&gt; Array
        (
            [HiPay\Fullservice\] =&gt; Array
                (
                    [0] =&gt; C:\xampp\htdocs\hipay-example\vendor\composer/../hipay/hipay-fullservice-sdk-php/lib/HiPay/Fullservice
                )

        )

поэтому я переименовал папку HiPay в hipay, и все работает. Извлеченный урок, используйте «print_r» для отладки вашего автозагрузчика f ck ps

1 Ответ

0 голосов
/ 08 ноября 2018

Код, который вы загрузили на сервер, будет работать в Linux с учетом регистра, но в операционной системе Windows это не имеет значения.

...