バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 独自プラグインの有効化タイミングにフックしてDBを直接操作したい

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Goosuke
投稿日時: 2021/6/9 17:39
対応状況: −−−
半人前
登録日: 2021/6/9
居住地:
投稿: 11
独自プラグインの有効化タイミングにフックしてDBを直接操作したい
▼テンプレート
[EC-CUBE] 4.0.5 新規インストール
[レンタルサーバ] xampp
[OS] windwos10
[PHP] 7.4.19
[データベース] 10.4.19-MariaDB
[WEBサーバ] xampp
[ブラウザ] chorome(最新)
[導入プラグインの有無] 独自プラグイン(受注データに)
[カスタマイズの有無] 無し

EC-CUBE/Symfonyとも、さわり始めてまだ数日の者です。
dtb_order/dtb_order_item に、独自の項目を追加するプラグインを作成したいと考えています。


Entityで項目追加はでき、プラグインインストールと同時に項目は生成されていますが、プラグインを削除すると、Entityで追加したフィールドは、過去のデータもろともテーブルから削除されてしまいます。
実運用中に誤ってプラグインを削除する事もありえるでしょうし、その時過去データ全て削除されると困ります。

そこで、以下のような処理を実現したいと考えています。

1.
プラグインの有効化処理にフックする

2.
dtb_order/dtb_order_item に、所定の名前・型のフィールドが存在していなければ直SQLで追加する。(SQLは分かります)

3.
2で問題が無い場合はプラグイン初期化処理を正常終了する。
問題があった場合は、メッセージを出してプラグインの有効化は行わない。

色々ググってみましたが、

1.プラグイン有効化フック処理の書き方が分からない。
3.有効化処理をエラー終了させる方法が分からない。

という状況です。
どうぞご指導ください!

尚、追加する項目は、EC-CUBE本体の受注処理とは連携しません。


【追記】
質問した後で思ったのですが、
@ORM\Column(name="hogehoge", type="datetimetz", nullable = true)
の所で何か追加?する事で、削除されないフィールドが作成できたりしないのでしょうか?
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 独自プラグインの有効化タイミングにフックしてDBを直接操作したい Goosuke 2021/6/9 17:39
     Re: 独自プラグインの有効化タイミングにフックしてDBを直接操作したい 468 2021/6/10 8:51
       Re: 独自プラグインの有効化タイミングにフックしてDBを直接操作したい Goosuke 2021/6/10 9:28
         Re: 独自プラグインの有効化タイミングにフックしてDBを直接操作したい 468 2021/6/11 11:16
           Re: 独自プラグインの有効化タイミングにフックしてDBを直接操作したい Goosuke 2021/6/11 11:44

 



ログイン



統計情報

総メンバー数は77,989名です
総投稿数は105,959件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2279
5
umebius
2085
6
yuh
1736
7
red
1557
8
h_tanaka
1301
9
tsuji
957
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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