Подскажите плиз. Установлен guzzle через composer. Composer.json: { "require": { "guzzle/guzzle": "~3.7", "guzzlehttp/guzzle": "^3.8" } } Но при вызове $client = new Client(); выдается ощибка класс Client не найден. use Guzzle\Http\Client; include('vendor/autoload.php'); Есть ли версии почему? Спасибо!
Техподдержка ответила: >В данной ситуации класс не оказывается найден по причине того, что код Ваших скриптов запрашивает элементы дополнительных пакетов, как если бы они были установлены глобально, в то время как их установка локальна. Вызываю разными способами: use GuzzleHttp\Client; $client = new Client(array('base_uri' => $url,) ); $client = new GuzzleHttp\Client(); $client = new Guzzle\Client(); Итог один. Класс Client не найден. Как вызывать локально установленные библиотеки?
autoload.php: Код (Text): <?php // autoload.php @generated by Composer require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInitc7bb6c8e41aef98c7344804ef0b::getLoader(); Какой код показать?
Ну давайте по порядку. Актуальная версия нынче 6.*, вы же ставите древние версии, причем две древние версии. Потому composer require guzzlehttp/guzzle:~6.0, а старое - удалить. Дальше примерно так: PHP: require 'vendor/autoload.php'; use GuzzleHttp\Client; $client = new Client([ // Base URI is used with relative requests 'base_uri' => 'http://httpbin.org', // You can set any number of default request options. 'timeout' => 2.0, ]); Документация тут: http://docs.guzzlephp.org/en/stable/index.html (со времен 3 версии api изменился очень сильно, потому все примеры лучше брать именно здесь)
Cпасибо, поняла вас. У меня проблема в том, что на хосте установлена php 5.3 Постараюсь это решить. Вы пишите: а старое - удалить Вопрос: Как удалять старые пакеты в композере? Он вроде автоматом обновит и все? Или нужна именно команда удаления?
Большое спасибо! Установили все. Сейчас composer show выдает: agromirooo@bitrix268:~$ composer show doctrine/inflector v1.2.0 Common String Manipulations with regard ... guzzlehttp/guzzle 6.3.0 Guzzle is a PHP HTTP client library guzzlehttp/promises v1.3.1 Guzzle promises library guzzlehttp/psr7 1.4.2 PSR-7 message implementation that also p... illuminate/contracts v5.5.39 The Illuminate Contracts package. illuminate/support v5.5.39 The Illuminate Support package. irazasyed/telegram-bot-sdk v3.0.0 The Unofficial Telegram Bot API PHP SDK league/event 2.1.2 Event package nesbot/carbon 1.24.2 A simple API extension for DateTime. psr/container 1.0.0 Common Container Interface (PHP FIG PSR-11) psr/http-message 1.0.1 Common interface for HTTP messages psr/simple-cache 1.0.1 Common interfaces for simple caching symfony/event-dispatcher v2.8.36 Symfony EventDispatcher Component symfony/polyfill-mbstring v1.7.0 Symfony polyfill for the Mbstring extension symfony/translation v3.4.6 Symfony Translation Component Вопрос. Как обращаться теперь из проекта? У меня в проекте папки vendor нет. Композер глобально стоит. Опять все мои попытки приводят к ошибке: PHP Fatal error: Uncaught Error: Class 'GuzzleHttp\Client' not found in /home/a/agromirooo/shop/public_html/test.php:3 Код (Text): <?php //require 'vendor/autoload.php'; use GuzzleHttp\Client; $client = new Client([ // Base URI is used with relative requests 'base_uri' => 'http://httpbin.org', // You can set any number of default request options. 'timeout' => 2.0, ]); ?>
Иными словами вопрос: глобально композер создан, библиотека irazasyed/telegram-bot-sdk установлена, все зависимости тоже. Теперь что делать в проекте? Как-то клонировать?
У тебя есть composer.json - он должен лежать в корне. В этой папке выполни "composer install" При этом создастся папка vendor Далее расскомменть в своем скрипте require 'vendor/autoload.php'; Твой скрипт тоже должен лежать в корне (рядом с composer.json и папкой vendor)
Большое спасибо! Все это сделала. Папка vendor появилась. Но у меня composer.json был пустой: {} Я вообще не понимаю откуда он взялся там... Поэтому опять та же ошибка: класс Client не найден. Вопрос. Что нужно прописать в composer.json чтобы заработало глобально установленные пакеты composera? Глобально вроде все что надо уже стоит.
Код (Text): { "require": { "guzzle/guzzle": "~3.7", "guzzlehttp/guzzle": "^3.8" } } должен быть composer.json, а не Composer.json (первый ваш пост)
Прописала composer.json { "require": { "guzzlehttp/guzzle": "^6.3.0" } } Выполнила: composer install Моя ошибка пропала. Большое спасибо!!!