2017-04-20 67 views
0

我正在轉換一個php項目以使用作曲者作爲依賴項管理器。Hybridauth +作曲家:如何添加自定義提供者

依賴關係在我的主腳本中通過這條線加載。

require 'vendor/autoload.php';

其中一個相關性是hybridauth(2.9版本)。由於使用Composer,它在查找自定義提供程序文件時會引發「文件未找到」錯誤。

例如,我的主控制器調用混合是這樣的:

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

現在,這裏是配置文件。我使用的提供商是「Facebooktest」。 請注意,我必須通過[包裝] [路徑]指定路徑;數組鍵以獲得下一個錯誤消息。

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 如果您最近通過你可能已經下載v2.9.2,包含在他們的Facebook類,從你更換供應商的路徑hybridauth /供應商,造成這種問題的錯誤作曲家安裝Hybridauth。

我懷疑你通過複製他們的Facebook類創建了Facebooktest類,並因此維持該錯誤。要麼更新到他們的開發分支並複製該Facebook類,要麼簡單地使用其他提供者類作爲您的自定義提供者類的模板。

相關問題