バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > バッチ処理の中で管理画面のコントローラを呼び出したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ikegam1
投稿日時: 2019/9/9 15:49
対応状況: −−−
新米
登録日: 2019/7/10
居住地:
投稿: 2
バッチ処理の中で管理画面のコントローラを呼び出したい
▼テンプレート
[EC-CUBE] EC-CUBE 4.0.2
[レンタルサーバ] aws ec2
[OS] Amazon Linux 2
[PHP] PHP 7.3.4
[データベース] postgresql11
[WEBサーバ] nginx/1.12.2
[ブラウザ] cli
[導入プラグインの有無] 有
[カスタマイズの有無] 有
[現象]

(株)カラーズの南島と申します。

現在とあるサイトのバッチ処理(CLI)の独自プラグインを作成しております。
そのバッチ処理の中で、受注ステータスの変更や納品書PDFの生成を行いたいのですが、管理画面には同様の機能がすでに存在します。

CLIの処理の中でこれらの管理画面の処理をキックできればと思っているのですが良い方法がございましたらご教示いただけませんでしょうか。
内部的にコントローラをincludeするようなやり方とかないでしょうか。
URIで言うと以下の2点です。

- https://xx.xx/admin/shipping/{id}/order_status
- https://xx.xx/admin/order/export/pdf?ids

(1点目はRESTful APIっぽいですが、どこかに仕様とかあったら教えて欲しいです)
nanasess
投稿日時: 2019/9/12 16:39
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1967
Re: バッチ処理の中で管理画面のコントローラを呼び出したい
残念ながら4系に Restful な API は、まだありません。
また、 Controller を include するのも難しいと思います。

認証をどうするかという問題はありますが、 Symfony\Component\HttpKernel\Client で Controller へ GET なり PUT のリクエストを送るという手はあります。

tests/Eccube/Tests/Web/Admin/Order/OrderControllerTest.php あたりが参考になると思います。

パフォーマンスや排他制御などが気になる場合は、 Controller 内の処理を独自に移植するのが良いと思います


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

ikegam1
投稿日時: 2019/9/19 15:36
対応状況: 解決済
新米
登録日: 2019/7/10
居住地:
投稿: 2
Re: バッチ処理の中で管理画面のコントローラを呼び出したい
nanasess様

確認が遅れましてすみません。
参考になるご意見ありがとうございます。

確かにテストコードは参考になりそうです。
HTTPリクエストを活用しつつ、部分的にはControllerの処理移植で対応できればと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,518名です
総投稿数は93,188件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1967
4
468
1818
5
yuh
1602
6
red
1343
7
umebius
1296
8
fukap
907
9
h_tanaka
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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