プラグイン作成

【EC-CUBE3】プラグインの作成は雛形から始めよう

「プラグインを作るぞー!!」と意気込んでも、頭の中は真っ白、目の前は真っ黒!!

google大先生に聞いても、よく分からなくてプログラムを作る前に挫折なんてことも。。。

そんな人は、最低限必要なプラグインの雛形から始めましょう。

プラグイン最低限のファイル構成

参考サイト:http://doc.ec-cube.net/plugin_bp_directory

プラグイン名は「テストサンプルプログラム」「TestSampleProgram」とします。


TestSampleProgram
├─ Entity
│  └─ TestSampleProgram.php(XXXX.php)
├─ Form
│  └─ Extension
│     └─ TestSampleProgramTypeExtension.php(XXXXTypeExtension.php)
├─ Resource
│  └─ doctrine
│     ├─ Plugin.TestSampleProgram.Entity.TestSampleProgram.dcm.yml(Plugin.XXXX.Entity.XXXX.dcm.yml)
│     └─ migration
│        └─ Version20180723000000.php (VersionYYYYMMDDHHMMSS.php)
├─ ServiceProvider
│  └─ TestSampleProgramServiceProvider.php(XXXXServiceProvider.php)
├─ TestSampleProgramEvent.php(XXXXEvent.php)
├─ config.yml
├─ event.yml
└─ PluginManager.php

このファイル構成は、デフォルト管理画面のFORM拡張をする場合に必要な構成になっています。

新しいページを追加したりするには、まだフォルダやファイルを追加しなければなりませんが、まずは基本的な事をマスターしたいと思います。

ファイルの内容

  • config.yml
  • 
    例)
    name: プラグイン名
    code: プラグインコード
    version: 1.0.0
    
    
    name: テストサンプルプログラム
    code: TestSampleProgram
    version: 1.0.0
    
  • event.yml
  • 記述なし
  • PluginManager.php
  • 
    <?php
    
    namespace Plugin\TestSampleProgram;
    
    use Eccube\Plugin\AbstractPluginManager;
    
    class PluginManager extends AbstractPluginManager
    {
    
        public function install($config, $app)
        {
        }
    
        public function uninstall($config, $app)
        {
        }
    
        public function enable($config, $app)
        {
        }
    
        public function disable($config, $app)
        {
        }
    
        public function update($config, $app)
        {
        }
    }
    
  • ServiceProvider/TestSampleProgramServiceProvider.php
  • 
    <?php
    
    namespace Plugin\TestSampleProgram\ServiceProvider;
    
    use Eccube\Application;
    use Silex\Application as BaseApplication;
    use Silex\ServiceProviderInterface;
    
    class TestSampleProgramServiceProvider implements ServiceProviderInterface
    {
        public function register(BaseApplication $app)
        {
        }
    
        public function boot(BaseApplication $app)
        {
        }
    }
    
  • Resource/doctrine/Plugin.TestSampleProgram.Entity.TestSampleProgram.dcm.yml
  • 記述なし
  • Resource/doctrine/migration/Version20180723000000.php
  • 
    <?php
    
    namespace DoctrineMigrations;
    
    use Doctrine\DBAL\Migrations\AbstractMigration;
    use Doctrine\DBAL\Schema\Schema;
    
    class Version20180723000000 extends AbstractMigration
    {
        public function up(Schema $schema)
        {
        }
    
        public function down(Schema $schema)
        {
        }
    }
    
  • Entity/TestSampleProgram.php
  • 
    <?php
    
    namespace Plugin\TestSampleProgram\Entity;
    
    class TestSampleProgram extends \Eccube\Entity\AbstractEntity
    {
    }
    
  • TestSampleProgramEvent.php
  • 記述なし

これでプラグインの雛形は完成です。

このままプラグインをインストールしても、何も起こりません。

次回からはこれを元に、EC-CUBE3の機能を拡張するプラグインを、作成しようと思います。

COMMENT

メールアドレスが公開されることはありません。