2013-09-03 5 views
7

Я использую Laravel 4 и загрузил hybridauth через композитора, и он отлично работал с Facebook и Twitter. Теперь я пытаюсь получить его работу с паром, который указан в качестве дополнительного поставщика, однако я получаю следующее сообщение об ошибке:Laravel 4, Composer и hybridauth - Как загрузить дополнительных провайдеров

require_once(vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Steam.php) [function.require-once]: failed to open stream: No such file or directory

Очевидно, что это смотрит в неправильном месте, фактический класс находится в этом месте :

vendor/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php

Там очень мало документации, что я могу найти на это, мое единственное предположение, что автор hybridauth только предложил эти дополнительные поставщики качестве дополнительного оборудования и ожидает, что вы изменить местоположение класса в нужное место , однако с композитором это не способ сделать что-то и вызовет проблемы в любое время, когда я запустил обновление для композитора.

Я не могу найти никого, у кого есть аналогичная проблема с помощью Google, что кажется странным, поэтому я беспокоюсь, что я пропал без вести. Есть ли способ использовать дополнительных поставщиков, чтобы их автозагрузка, при использовании hybridauth с Composer?

Единственное решение, которое я могу придумать, - это вручную включить правильный файл, прежде чем он попытается выполнить автозагрузку. Я не против этого, но я предполагаю, что должен быть правильный способ сделать это, иначе использование Composer с Hybridauth довольно бесполезно.

+0

Очевидно, что-то не так с библиотекой. – Michelle

ответ

-1

Я искал и искал это. Все, о чем я могу думать, это то, что он был создан для использования без фреймворков, затем был портирован для использования с Composer, однако папка «дополнительных поставщиков» не загружена или что-то еще. Это отвратительно.

Я просто скопировал файл в другой каталог, и все работает сейчас.

Это может быть удобно для вас ...

http://blog.elliothesp.co.uk/coding/laravel-4-and-hybrid-auth/

Часть относительно этого:

Copy the Steam.php file, located at: 
laravel/vendor/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php 

Over to: 

laravel/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/ 

Я понятия не имею, почему библиотека им отделенный, не имеет никакого смысла мне.

+0

Приветствия, это вызовет проблему с обновлением композитора? – robjbrain

+0

Нет, у меня не было никаких проблем. Хотя я думаю, что если файл Steam.php обновится, он не будет обновлен в вашем проекте, вам придется сделать то же самое снова. Я пытался связаться с разработчиком, но ничего не получил. – Alias

4

Я имел эту проблему с Instagram и был в состоянии использовать синтаксис обертки, который документированной здесь http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html

ниже код получил адаптер Instagram работает для меня.

  "Instagram" => array ( 
       "enabled" => true, 
       "keys" => array ( 
        "id" => xxxx, 
        "secret" => xxxx, 
       ), 
       "wrapper" => array(
        'class'=>'Hybrid_Providers_Instagram', 
        'path' => $_SERVER['DOCUMENT_ROOT'].'/../vendor/hybridauth/hybridauth/additional-providers/hybridauth-instagram/Providers/Instagram.php' 
       ) 
      ), 

Если вы читаете источник в hybridauth/Hybrid/Provider_Adapter.php линии 69, вы увидите, что он проверяет это, прежде чем делать require_once со стандартным путем.