バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

その他

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Toms
投稿日時: 2019/2/28 11:16
対応状況: −−−
新米
登録日: 2019/2/28
居住地:
投稿: 5
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
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » app/consoleプラグインのひな形 Toms 2019/2/28 11:16
     Re: app/consoleプラグインのひな形 nyorai 2019/3/6 8:36
       Re: app/consoleプラグインのひな形 okazy 2019/3/7 13:31
         Re: app/consoleプラグインのひな形 Toms 2019/3/7 13:39

 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1277
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.