Predis Autoloader не загружается

Я использую composer для добавления внешних библиотек в мой проект — включая Predis.

По какой-то причине Predis не генерируется, вероятно, и я всегда получаю:

Class 'Predis\Autoloader' not found

Поэтому я погрузился в загрузку файлов композитора и обнаружил некоторые странные вещи:

Это мой composer.json:

{
"require": {
"facebook/php-sdk": "@stable",
"everyman/neo4jphp": "dev-master",
"predis/predis": "1.1.*@dev",
"aws/aws-sdk-php": "2.*"},

"autoload": {
"psr-0": {
"PicoCore\\": "",
"PicoCore\\Authentication\\" : "PicoCore/authentication",
"PicoCore\\Aws\\" : "PicoCore/aws",
"PicoCore\\Cache\\" : "PicoCore/cache",
"PicoCore\\Database\\" : "PicoCore/database",
"PicoCore\\Facebook\\" : "PicoCore/facebook",
"PicoCore\\Objects\\" : "PicoCore/objects",
"PicoCore\\Rest\\" : "PicoCore/rest",
"PicoCore\\Configuration\\" : "PicoCore/configuration",
"PicoCore\\Configuration\\Api\\" : "PicoCore/configuration/api",
"PicoCore\\Scripts\\" : "PicoCore/scripts",
"PicoCore\\Times" : "PicoCore/times"}
}
}

Теперь я хотел посмотреть, как выглядит сгенерированное пространство имен для Predis, поэтому я проверил autoload_par4.php внутри папки composer, и вот как это выглядит:

<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
'Predis\\' => array($vendorDir . '/predis/predis/PicoCore'),
);

Теперь, если вы заметите, вы увидите, что путь к пространству имен Predis /predis/predis/PicoCore

(PicoCore — это пространство имен моего приложения), когда оно должно быть

/predis/predis/src

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

Любые идеи, почему или откуда он берет путь и почему он добавляет название моего проекта?

Кстати, я посмотрел на composer.json predis и изменил его, и теперь он выглядит следующим образом:

{
"name": "predis/predis",
"type": "library",
"description": "Flexible and feature-complete PHP client library for Redis",
"keywords": ["nosql", "redis", "predis"],
"homepage": "http://github.com/nrk/predis",
"license": "MIT",
"support": {
"issues": "https://github.com/nrk/predis/issues"},
"authors": [
{
"name": "Daniele Alessandri",
"email": "[email protected]",
"homepage": "http://clorophilla.net"}
],
"require": {
"php": ">=5.3.9"},
"require-dev": {
"phpunit/phpunit": "~4.0"},
"suggest": {
"ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol",
"ext-curl": "Allows access to Webdis when paired with phpiredis"},
"autoload": {
"psr-4": {"Predis\\": "src/"}
},
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"}
}
}

0

Решение

Проблема заключалась в том, что я добавил зависимость:

«predis / predis»: «1.1.*@dev»

Пока мне нужно:

«predis / predis»: «1.0.1»

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]