バージョン選択

フォーラム

メニュー

オンライン状況

46 人のユーザが現在オンラインです。 (37 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 46
もっと...

サイト内検索

プラグイン > 開発について > DIについて

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
n.o
投稿日時: 2018/8/13 15:29
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 31
DIについて
DIについて基本的なことがわかりません。
例えばSamplePaymentに下記のようなコードがありますが、何故$configRepositoryにインスタンスが注入されるのかわかりません。
見よう見まねで同様のコードを書いてもシステムエラーの画面が表示されてしまいます(*解決済みです)。プラグインを再インストールしても同様です。
DIやDIコンテナについての説明があると助かります。


class ConfigController extends AbstractController
{
    /**
     * @var ConfigRepository
     */
    protected $configRepository;

    /**
     * ConfigController constructor.
     *
     * @param ConfigRepository $configRepository
     */
    public function __construct(ConfigRepository $configRepository)
    {
        $this->configRepository = $configRepository;
    }
n.o
投稿日時: 2018/8/13 17:03
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 31
Re: DIについて
システムエラーについては自己解決しました。リポジトリが参照するEntityの宣言部分に誤りがありエラーが発生していました。エラー箇所を修正したところ、注入が行われました。

しかし、やはりコンテナの仕組みはあまり良く理解できていないので、説明があると助かります。
nanasess
投稿日時: 2018/8/20 18:04
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: DIについて
現状では、こんな英文のドキュメントを参考にするしかないですね。。。
https://symfony.com/doc/3.4/components/dependency_injection.html

徐々に日本語のドキュメントは充実させていきたいと思っています
n.o
投稿日時: 2018/8/28 15:28
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 31
Re: DIについて
nanasess 様

ご返答ありがとうございます。

Symfony未経験者にはEC-CUBE独自なのかSymfony独自なのか判断が難しく、
コンストラクタインジェクションやservices.yamlの記述方法等のサンプルがあるととっつきやすくて良いと思いました。

特に3.0系で$app~という記述を多用していたのがまったく使えなくなっているので、
その辺りの代替方法が丁寧に説明されていると非常に助かると思います。
nanasess
投稿日時: 2018/8/28 17:28
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: DIについて
引用:

特に3.0系で$app~という記述を多用していたのがまったく使えなくなっているので、
その辺りの代替方法が丁寧に説明されていると非常に助かると思います。


一応、 $app (Pimple)も裏技的に使えるようにしてるんですけどね。。。

DIコンテナから app を取得すれば使用できますので、コントローラで使いたい場合は以下のようにします。

$app = $this->get('app'); // Eccube\Application を取得

$em = $app['orm.em']; // EntityManager を取得
$Session = $app['session']; // session を取得
$Customer = $app['user']; // user を取得



src/Eccube/ServiceProvider/EccubeServiceProvider.php に定義されているものは使用できます。
n.o
投稿日時: 2018/8/29 9:48
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 31
Re: DIについて
nanasess 様

ご返答ありがとうございます。
参考にさせて頂きます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,290名です
総投稿数は109,689件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.