バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > Eccube\Applicationクラスの初期化について

開発について

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
nanasess
投稿日時: 2017/11/10 16:28
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: Eccube\Applicationクラスの初期化について
引用:

たぶん同一リクエストや同一プロセス内で、複数回Applicationの初期化をする場合があり、その際の制御に必要だったんじゃないかなと思います。


正確には、 Application を引数やパラメータに保持しないクラスや関数から Application のインスタンスを取得した際、新たなインスタンスを生成してデータベースのコネクションが複数にならないようにする対策ですね。

https://github.com/EC-CUBE/ec-cube/issues/857#issuecomment-144291909

複数のコネクションを張ってしまうと、トランザクションの制御ができなくなったり、 SQLite3 でデータベースがロックしてしまったりと弊害が多いので、 Application は必ず唯一のインスタンス(Singleton)となるようにしています。
また、 Singleton にした場合、 initialized で初期化を制御してあげないと、 ServiceProviderInterface::register() が複数回コールされ、不具合の要因となってしまいます。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   Eccube\Applicationクラスの初期化について yuy-tank 2017/11/10 12:13
     Re: Eccube\Applicationクラスの初期化について nyorai 2017/11/10 13:32
       Re: Eccube\Applicationクラスの初期化について yuy-tank 2017/11/10 14:37
         Re: Eccube\Applicationクラスの初期化について nyorai 2017/11/10 16:05
         » Re: Eccube\Applicationクラスの初期化について nanasess 2017/11/10 16:28
             Re: Eccube\Applicationクラスの初期化について yuy-tank 2017/11/10 17:11

 



ログイン


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

統計情報

総メンバー数は89,019名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.