pkj/minibase-plugin-doctrine

minibase的Doctrine插件。集成Doctrine与Minibase。

dev-master 2013-04-30 01:45 UTC

This package is auto-updated.

Last update: 2024-08-29 03:31:20 UTC


README

使您能够将Doctrine集成到Minibase中。

安装

{
  "require":{
	     "pkj/minibase-plugin-doctrine": "dev-master"
	}
}

设置

初始化插件

$mb->initPlugins(array(
	'Pkj\Minibase\Plugin\DoctrinePlugin\DoctrinePlugin' => array(
		'metadata' => 'annotation', // yaml,xml or annotation.
		'entityDirs' => [__DIR__ . '/Models'], // Entity dirs.
		'proxyDir' => __DIR__ . '/cache/proxies', // Cached proxies
		'connection' => array(
			'driver' => 'pdo_sqlite',
    			'path' => __DIR__ . '/db.sqlite',
		),
		// Optional callback to configure the Configuration object.
		setupCallback: function () {
			// $this = Doctrine Configuration object instance.
		}
	)
));

在控制器中使用

该插件将"em"作为插件在您的MB应用程序中可用。

从任何控制器

使用Doctrine CLI

请参阅Minibase CLI 文档,了解如何生成可以运行命令的php文件。

此插件将所有Doctrine CLI命令注入到默认的minibase命令中。

$this->mb->em->persist(new SomeModel());

事件

plugin:doctrine:entityDirs (array &$entityDirs)

监听此事件以添加更多实体目录。对需要此插件的其他插件很有用。注意,$entityDirs 是一个引用。

plugin:doctrine:setup (Doctrine\ORM\Configuration $setup)

监听此事件以在创建实体管理器之前配置Doctrine的配置。

迁移

跟踪生产数据库的最佳方式是迁移。

在您的cli.php二进制文件所在位置创建migrations.xml

添加此(自行配置)

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-migrations xmlns="http://doctrine-project.org/schemas/migrations/configuration"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://doctrine-project.org/schemas/migrations/configuration
                    http://doctrine-project.org/schemas/migrations/configuration.xsd">

    <name>App migrations</name>

    <migrations-namespace>app\migrations</migrations-namespace>

    <table name="doctrine_migration_versions" />

    <migrations-directory>app/migrations</migrations-directory>

</doctrine-migrations>

创建您的第一个diff

php cli.php migration:diff

执行迁移

php cli.php migrations:migrate