バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > その他 > app/consoleプラグインのひな形

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Toms
投稿日時: 2019/2/28 11:16
対応状況: −−−
新米
登録日: 2019/2/28
居住地:
投稿: 3
app/consoleプラグインのひな形
EC-Cube初心者の自分が、他のシステムとの連携プログラムを作成しようと、コマンドラインのプラグインをマニュアル通りにやってみたものの、全く動作せず、二日ほど無駄にしたので、その屍をさらしておきたいと思います。

参考:http://doc.ec-cube.net/plugin_console-plugin


(1)実行
 php -d display_errors app/console
 →レンタルサーバだとエラー表示がオフになっているケースがほとんどなので、エラーがあっても無反応になるだけになる。

(2)ソースコード
 開発ドキュメントは以下の問題があった
  ・import.php
    →不正な位置にコメントがある
    →そもそも「<?php」が無い
    →namespaceが未定義
    →Input,OutputInterfaceが未定義
    →そもそもビジネスロジックのひな形さえない。
  ・ProductImportServiceProvider.php
    →不正な位置にコメントがある


■config.yml
name: 商品インポート
code: ProductImport
version: 0.0.1
service:
    - ProductImportServiceProvider


■Import.php
<?php
namespace Plugin\ProductImport;

use Knp\Command\Command;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Symfony\Component\Console\Helper\TableHelper;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

 class Import extends Command
{
    protected function configure()
    {
        //コンソールパラメターと説明書きます
		//参考はこちらですhttp://docs.symfony.gr.jp/symfony2/cookbook/console.html
	$this
		->setName('Product:Import')
		->setDescription('Find Product by Id')
		->addArgument('id', InputArgument::REQUIRED, 'Product ID');

    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        //Eccube\Application
        $app = $this->getSilexApplication();

		//こちらビジネスロジックを始まります
                //サンプルとして、引数で指定したIDの商品情報を表示します。
                $output->writeln('<info>Product Info.</info>');
		dump($app["eccube.repository.product"]->find( $input->getArgument('id')));
    }


}



■ServiceProvider\ProductImportServiceProvider.php
<?php
namespace Plugin\ProductImport\ServiceProvider;

class ProductImportServiceProvider implements \Silex\ServiceProviderInterface
{
    public function register(\Silex\Application $app)
    {
	    //コマンドライン以外STOPする
        if(!isset($app['console'])){
            return;
        }
        $app['console']->add(new \Plugin\ProductImport\Import());
    }

    public function boot(\Silex\Application $app)
    {
    	;
    }
}



(3)インストール
 ・app/Plugin/ProductImportフォルダに移動して、その中身だけをZip圧縮し、ProductImport.zipとして保存。
 ・ec-cubeの管理画面>オーナーズストアー>プラグイン>プラグイン一覧>独自プラグインの「プラグインのアップロードはこちら」からzipをアップロード
   ※「app/console plugin:develop install --path=ProductImport.zip」(ProductImport.zipは、公開ルートに要アップロード)でもOKでした。
 ・プラグイン一覧に「商品インポート」が追加されるので、「有効にする」リンクをクリックして、有効化。

  コンソールで、公開フォルダに移動して、「php app/console」と入力して、Available commandsに、ProductグループとProduct:Importが出てくれば、登録はOk。
  「php app/console Product:Import 1」とやって、商品ID1のデータがずらっとでればOK。



以上、おかしい点などご指摘いただけると涙流して喜びます。



▼テンプレート
[EC-CUBE] 3.0.15
[PHP] 7.2.14
nyorai
投稿日時: 2019/3/6 8:36
対応状況: −−−
長老
登録日: 2015/8/21
居住地:
投稿: 248
Re: app/consoleプラグインのひな形
ありがとうございます。こちら参考にさせていただいて、Pull Requestしました。間もなく取り込まれると思います。

https://github.com/EC-CUBE/ec-cube.github.io/pull/234
okazy
投稿日時: 2019/3/7 13:31
対応状況: −−−
半人前
登録日: 2017/10/11
居住地:
投稿: 18
Re: app/consoleプラグインのひな形
プルリクを取り込みました!

http://doc.ec-cube.net/plugin_console-plugin

こちらの手順で試してみてください。
Toms
投稿日時: 2019/3/7 13:39
対応状況: −−−
新米
登録日: 2019/2/28
居住地:
投稿: 3
Re: app/consoleプラグインのひな形
ありがとうございます。

同じ穴に落ちる人が減るよう、祈るばかりです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


ec-cube.co

統計情報

総メンバー数は45,094名です
総投稿数は91,732件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1894
4
468
1746
5
yuh
1584
6
umebius
1296
7
red
1278
8
fukap
907
9
tsuji
837
10
shutta
827
11 ramrun 789
12
tao_s
745
13
h_tanaka
728
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.