Изменить автозагрузку класса пространства имен на ручную require_once PHP - PullRequest
0 голосов
/ 03 мая 2020

Я хочу использовать класс пространств имен для ручного без использования автозагрузки. php будет включено. Потому что я не хочу использовать все функции класса.

Я использую этот проект https://github.com/codenix-sv/coingecko-api, чтобы получить его функцию в моей php функции.

В примере использования это выглядит так:

use Codenixsv\CoinGeckoApi\CoinGeckoClient;

$client = new CoinGeckoClient();

$data = $client->ping();

Но я хочу изменить его на require_once. Поэтому я поместил всю папку sr c в свою папку php и создал ее для вызова функции

require_once 'libs/Api/CoinGeckoClient.php';
$client = new Codenixsv\CoinGeckoApi\CoinGeckoClient;

$data = $client->simple();

Сначала я получил эту ошибку при попытке доступа к странице.

Неустранимая ошибка: необнаруженная ошибка: класс 'GuzzleHttp \ Client' не найден в C: \ xampp \ htdocs \ te.st \ libs \ Api \ CoinGeckoClient. php: 35

Затем я пытаюсь удалить строку «use GuzzleHttp \ Client» в файле CoinGeckoClient. php. И получил с этой ошибкой

Неустранимая ошибка: необнаруженная ошибка: класс 'Codenixsv \ CoinGeckoApi \ Client' не найден в C: \ xampp \ htdocs \ te.st \ libs \ Api \ CoinGeckoClient. php: 35

Можно ли просто использовать "простую" функцию coingecko только в моем файле php.

https://github.com/codenix-sv/coingecko-api/blob/master/src/Api/Simple.php

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Вот как я могу это исправить. загрузить composer. json, как

{
    "require": {
      "codenix-sv/coingecko-api": "^1.0",
      "guzzlehttp/guzzle": "~6.0"
    }
}

, затем выполнить обновление composer в командном окне.

В моем файле php. убедитесь, что

использует Codenixsv \ CoinGeckoApi \ CoinGeckoClient;

помещается в начало файла. Тогда сделайте все остальное.

Спасибо всем

0 голосов
/ 03 мая 2020

Этот пакет готов к работе с composer. Composer доставлен автозагрузчик, чтобы вам было проще работать.

Если вы удалите строку use GuzzleHttp\Client из CoinGeckoClient.php, отправлять запрос на сервер не удастся.

Лучший опция включает composer автозагрузку в вашем файле проекта, это означает, что вы должны:

  1. Создать composer. json файл для вашего проекта
  2. Добавить необходимую библиотечную зависимость с помощью команды : composer require guzzlehttp/guzzle
  3. Добавить нужную библиотечную зависимость, используя команду: composer require codenix-sv/coingecko-api
  4. Внутри вашего файла проекта добавьте следующую строку:

    require_once(dirname(__FILE__) . '/vendor/autoload.php');
    
    use Codenixsv\CoinGeckoApi\CoinGeckoClient;
    
    $client = new CoinGeckoClient();
    $data = $client->ping();
    

Иначе, это будет обязательно, чтобы импортировать все файлы вручную. И, конечно же, вы не должны забывать об импорте для клиента Guzzle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...