Skip to content

Commit

Permalink
PluginManager から $app を削除, Abstract メソッド追加
Browse files Browse the repository at this point in the history
  • Loading branch information
nanasess committed Aug 30, 2018
1 parent eb21865 commit 1682587
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 12 deletions.
58 changes: 54 additions & 4 deletions src/Eccube/Plugin/AbstractPluginManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,24 @@

use Doctrine\DBAL\Migrations\Configuration\Configuration;
use Doctrine\DBAL\Migrations\Migration;
use Symfony\Component\DependencyInjection\ContainerInterface;

class AbstractPluginManager
abstract class AbstractPluginManager
{
const MIGRATION_TABLE_PREFIX = 'migration_';

public function migrationSchema($app, $migrationFilePath, $pluginCode, $version = null)
/**
* Migrate the schema.
*
* @param ContainerInterface $container
* @param string $migrationFilePath
* @param string $pluginCode
* @param string $version
* @return array An array of migration sql statements. This will be empty if the the $confirm callback declines to execute the migration
*/
public function migrationSchema(ContainerInterface $container, $migrationFilePath, $pluginCode, $version = null)
{
$config = new Configuration($app['db']);
$config = new Configuration($container->get('doctrine.dbal.connection'));
$config->setMigrationsNamespace('DoctrineMigrations');
$config->setMigrationsDirectory($migrationFilePath);
$config->registerMigrationsFromDirectory($migrationFilePath);
Expand All @@ -31,6 +41,46 @@ public function migrationSchema($app, $migrationFilePath, $pluginCode, $version
$migration->setNoMigrationException(true);
// null 又は 'last' を渡すと最新バージョンまでマイグレートする
// 0か'first'を渡すと最初に戻る
$migration->migrate($version, false);
return $migration->migrate($version, false);
}

/**
* Install the plugin.
*
* @param array $meta
* @param ContainerInterface $container
*/
abstract public function install(array $meta, ContainerInterface $container);

/**
* Update the plugin.
*
* @param array $meta
* @param ContainerInterface $container
*/
abstract public function update(array $meta, ContainerInterface $container);

/**
* Enable the plugin.
*
* @param array $meta
* @param ContainerInterface $container
*/
abstract public function enable(array $meta, ContainerInterface $container);

/**
* Disable the plugin.
*
* @param array $meta
* @param ContainerInterface $container
*/
abstract public function disable(array $meta, ContainerInterface $container);

/**
* Uninstall the plugin.
*
* @param array $meta
* @param ContainerInterface $container
*/
abstract public function uninstall(array $meta, ContainerInterface $container);
}
9 changes: 1 addition & 8 deletions src/Eccube/Service/PluginService.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
use Eccube\Application;
use Eccube\Common\Constant;
use Eccube\Common\EccubeConfig;
use Eccube\Entity\Plugin;
Expand Down Expand Up @@ -45,11 +44,6 @@ class PluginService
*/
protected $pluginRepository;

/**
* @var Application
*/
protected $app;

/**
* @var EntityProxyService
*/
Expand Down Expand Up @@ -446,8 +440,7 @@ public function callPluginManagerMethod($meta, $method)
if (class_exists($class)) {
$installer = new $class(); // マネージャクラスに所定のメソッドがある場合だけ実行する
if (method_exists($installer, $method)) {
// FIXME appを削除.
$installer->$method($meta, $this->app, $this->container);
$installer->$method($meta, $this->container);
}
}
}
Expand Down

0 comments on commit 1682587

Please sign in to comment.