drupalモジュールの依存関係を管理するためにcomposerを使用しています。モジュールのルートディレクトリにあるcomposer.jsonファイルで依存関係を指定しました。composer install
コマンドを実行すると、すべての依存関係が正しくインストールされます。ただし、オートローディングは機能していないようです。
私はここで問題に対処するいくつかのスレッドをチェックしましたが、drupal.orgのモジュールのページではバージョン8.1以降のDrupalのcomposerの使用の改善により非推奨であるにもかかわらず、それらのほとんどが利用可能なcomposer managerモジュールの使用を提案していることがわかりました
これが私のモジュールのルートディレクトリにあるcomposer.jsonファイルです。
{
"name": "activit/facebook_ratings",
"description": "Display a feed of your Facebook fanpage's ratings on your website.",
"type": "drupal-module",
"require": {
"facebook/graph-sdk": "^5.4"
},
"license": "MIT",
"authors": [
{
"name": "Robert Balasko",
"email": "rbalasko@activit.sk"
}
]
}
そして、srcディレクトリのルートにある、graph-sdkからクラスをロードしようとするファクトリクラス。
<?php namespace Drupal\facebook_ratings;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Facebook\Facebook;
class FacebookConnectorFactory {
private $logger_factory;
public function __construct(LoggerChannelFactoryInterface $logger_factory) {
$this->logger_factory = $logger_factory;
}
public function getFacebookService($app_id, $app_secret) {
if (!$app_id || !$app_secret) {
$this->logger_factory
->get('facebook_ratings')
->error('Undefined App ID or App secret');
return FALSE;
}
return new Facebook([
'app_id' => $app_id,
'app_secret' => $app_secret,
'default_graph_version' => 'v2.6',
]);
}
}
その結果class not found
、コードを実行するとエラーが発生します。依存関係をオートロードする必要はありませんか、それとも何か問題がありますか?
どうもありがとう。