2017-04-20 23 views
0

私は依存関係マネージャとしてコンポーザを使用するようにPHPプロジェクトを変換しています。Hybridauth + composer:カスタムプロバイダを追加する方法

依存関係は、私のメインスクリプトにこの行を介して読み込まれます。これらの依存関係の

require 'vendor/autoload.php';

つhybridauth(バージョン2.9)です。 Composerを使用してから、カスタムプロバイダファイルを探すときに 'ファイルが見つかりません'というエラーがスローされます。ここでは、今

$config_file_path = dirname(__FILE__) .'/hybridauth/config.php'; 
$hybridauth = new Hybrid_Auth($config_file_path); 

を設定ファイルである:

は例えば、私のメインコントローラは、このようにハイブリッドを呼び出します。私が使っているプロバイダは "Facebooktest"です。 [wrapper] [path]を使ってパスを指定しなければならないことに注意してください。配列キーを押して次のエラーメッセージを表示します。

return 
array(
    "base_url" => WWWROOT."/auth", 
    "providers" => array(
     "Facebook" => array(
      "enabled" => true, 
      "keys" => array("id" => "xxxxxxx", "secret" => "xxxxxxxx"), 
      "scope" => "email", 
      "trustForwarded" => false 
     ), 
     "Facebooktest" => array(
      "enabled" => true, 
      "keys" => array("id" => "xxxxxxx", "secret" => "xxxxxx"), 
      "scope" => "email", 
      "trustForwarded" => false, 
      "wrapper"=> array(
       "class"=>'Hybrid_Providers_Facebooktest', 
       "path"=> './controllers/hybridauth/Hybrid/Providers/Facebooktest.php' 
      ) 
     ) 
    ), 
    "debug_mode" => false, 
    "debug_file" => "", 
); 

(トレースで)エラーメッセージ:

require_once(/path/to/composer-project/vendor/hybridauth/hybridauth/hybridauth/Hybrid/thirdparty/Facebook/autoload.php): failed to open stream: No such file or directory 

[vendor/bcosca/fatfree/lib/base.php:2174] Base->error() 
[controllers/hybridauth/Hybrid/Providers/Facebooktest.php:61] Base->{closure}() 
[controllers/hybridauth/Hybrid/Providers/Facebooktest.php:61] require_once() 
[vendor/hybridauth/hybridauth/hybridauth/Hybrid/Provider_Model.php:99] Hybrid_Providers_Facebooktest->initialize() 
[vendor/hybridauth/hybridauth/hybridauth/Hybrid/Provider_Adapter.php:101] Hybrid_Provider_Model->__construct() 
[vendor/hybridauth/hybridauth/hybridauth/Hybrid/Auth.php:278] Hybrid_Provider_Adapter->factory() 
[vendor/hybridauth/hybridauth/hybridauth/Hybrid/Auth.php:230] Hybrid_Auth::setup() 
[controllers/auth-action.get.php:19] Hybrid_Auth::authenticate() 

私は今、 "ベンダー/ hybridauth /" プロジェクト内のパスを変更する必要があること、それが奇妙見つけます。これは、依存関係マネージャを使用する目的に反する。確かに、私は間違っている必要があります。 アドバイスできますか?

答えて

1

Check my answer to another question here Hybridauthをコンポーザーで最近インストールした場合は、Facebookクラスのバグが含まれているv2.9.2がダウンロードされている可能性があります。

FacebookのクラスをコピーしてそのFacebooktestクラスを作成したことが原因で、そのエラーが発生したと思われます。 devブランチに更新し、そのFacebookクラスをコピーするか、カスタムプロバイダークラスのテンプレートとして他のプロバイダークラスを使用するだけです。

関連する問題