微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何处理doctrine2数据夹具(平面文件)

我正在研究doctrine2以及如何处理数据夹具.我特别感兴趣的是从平面文件(csv,yaml,xls)中读取它们.

在doctrine 1.2中,数据夹具的处理方式如下:http://www.doctrine-project.org/projects/orm/1.2/docs/manual/data-fixtures/en#data-fixtures

有任何建议如何在doctrine2中处理这个问题?

最佳答案:

正如史蒂文已经提到的那样,夹具功能作为一个单独的回购.
我花了一些时间来弄清楚如何在Symfony2中安装数据夹具功能,所以这是我如何做到的:

将源添加到您的deps文件

[doctrine-fixtures]
    git=http://github.com/doctrine/data-fixtures.git

[DoctrineFixturesBundle]
    git=http://github.com/symfony/DoctrineFixturesBundle.git
    target=/bundles/Symfony/Bundle/DoctrineFixturesBundle

更新你的供应商

$PHP bin/vendors install

在autoload.PHP注册

$loader->registerNamespaces(array(
    //...
   'Doctrine\\Common\\DataFixtures' => __DIR__.'/../vendor/doctrine-fixtures/lib',
   'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
    //..
));

添加类子FixtureInterface的子类:

<?PHP
use Doctrine\ORM\EntityManager,
    Doctrine\Common\DataFixtures\FixtureInterface;
/**
 * 
 * setup of initial data for the unit- and functional tests
 * @author stephan
 */
class LoadTestingData implements FixtureInterface{
    /**
     *
     * @param EntityManager $manager 
     */
    public function load($manager) {
        $user = new User();
        $user->setUsername("testuser");

        $manager->persist($user);
    }
//...

通过console命令加载数据夹具

./app/console doctrine:data:load

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐