use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Wallabag\CoreBundle\Entity\Entry;
-use Wallabag\CoreBundle\Entity\Tag;
class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
{
*/
public function load(ObjectManager $manager)
{
- $entry1 = new Entry($this->getReference('admin-user'));
- $entry1->setUrl('http://0.0.0.0');
- $entry1->setTitle('test title entry1');
- $entry1->setContent('This is my content /o/');
-
- $manager->persist($entry1);
-
- $this->addReference('entry1', $entry1);
-
- $entry2 = new Entry($this->getReference('admin-user'));
- $entry2->setUrl('http://0.0.0.0');
- $entry2->setTitle('test title entry2');
- $entry2->setContent('This is my content /o/');
-
- $manager->persist($entry2);
-
- $this->addReference('entry2', $entry2);
-
- $entry3 = new Entry($this->getReference('bob-user'));
- $entry3->setUrl('http://0.0.0.0');
- $entry3->setTitle('test title entry3');
- $entry3->setContent('This is my content /o/');
-
- $tag1 = new Tag($this->getReference('bob-user'));
- $tag1->setLabel('foo');
- $tag2 = new Tag($this->getReference('bob-user'));
- $tag2->setLabel('bar');
-
- $entry3->addTag($tag1);
- $entry3->addTag($tag2);
-
- $manager->persist($entry3);
-
- $this->addReference('entry3', $entry3);
-
- $entry4 = new Entry($this->getReference('admin-user'));
- $entry4->setUrl('http://0.0.0.0');
- $entry4->setTitle('test title entry4');
- $entry4->setContent('This is my content /o/');
-
- $tag1 = new Tag($this->getReference('admin-user'));
- $tag1->setLabel('foo');
- $tag2 = new Tag($this->getReference('admin-user'));
- $tag2->setLabel('bar');
-
- $entry4->addTag($tag1);
- $entry4->addTag($tag2);
-
- $manager->persist($entry4);
-
- $this->addReference('entry4', $entry4);
-
- $entry5 = new Entry($this->getReference('admin-user'));
- $entry5->setUrl('http://0.0.0.0');
- $entry5->setTitle('test title entry5');
- $entry5->setContent('This is my content /o/');
- $entry5->setStarred(true);
-
- $manager->persist($entry5);
-
- $this->addReference('entry5', $entry5);
-
- $entry6 = new Entry($this->getReference('admin-user'));
- $entry6->setUrl('http://0.0.0.0');
- $entry6->setTitle('test title entry6');
- $entry6->setContent('This is my content /o/');
- $entry6->setArchived(true);
-
- $manager->persist($entry6);
-
- $this->addReference('entry6', $entry6);
+ $entries = [
+ 'entry1' => [
+ 'user' => 'admin-user',
+ 'url' => 'http://0.0.0.0/entry1',
+ 'reading_time' => 11,
+ 'domain' => 'domain.io',
+ 'mime' => 'text/html',
+ 'title' => 'test title entry1',
+ 'content' => 'This is my content /o/',
+ 'language' => 'en',
+ 'tags' => ['foo-tag', 'baz-tag'],
+ ],
+ 'entry2' => [
+ 'user' => 'admin-user',
+ 'url' => 'http://0.0.0.0/entry2',
+ 'reading_time' => 1,
+ 'domain' => 'domain.io',
+ 'mime' => 'text/html',
+ 'title' => 'test title entry2',
+ 'content' => 'This is my content /o/',
+ 'origin' => 'ftp://oneftp.tld',
+ 'language' => 'fr',
+ ],
+ 'entry3' => [
+ 'user' => 'bob-user',
+ 'url' => 'http://0.0.0.0/entry3',
+ 'reading_time' => 1,
+ 'domain' => 'domain.io',
+ 'mime' => 'text/html',
+ 'title' => 'test title entry3',
+ 'content' => 'This is my content /o/',
+ 'language' => 'en',
+ 'tags' => ['foo-tag', 'bar-tag', 'bob-tag'],
+ ],
+ 'entry4' => [
+ 'user' => 'admin-user',
+ 'url' => 'http://0.0.0.0/entry4',
+ 'reading_time' => 12,
+ 'domain' => 'domain.io',
+ 'mime' => 'text/html',
+ 'title' => 'test title entry4',
+ 'content' => 'This is my content /o/',
+ 'language' => 'en',
+ 'tags' => ['foo-tag', 'bar-tag'],
+ ],
+ 'entry5' => [
+ 'user' => 'admin-user',
+ 'url' => 'http://0.0.0.0/entry5',
+ 'reading_time' => 12,
+ 'domain' => 'domain.io',
+ 'mime' => 'text/html',
+ 'title' => 'test title entry5',
+ 'content' => 'This is my content /o/',
+ 'language' => 'fr',
+ 'starred' => true,
+ 'preview' => 'http://0.0.0.0/image.jpg',
+ ],
+ 'entry6' => [
+ 'user' => 'admin-user',
+ 'url' => 'http://0.0.0.0/entry6',
+ 'reading_time' => 12,
+ 'domain' => 'domain.io',
+ 'mime' => 'text/html',
+ 'title' => 'test title entry6',
+ 'content' => 'This is my content /o/',
+ 'language' => 'de',
+ 'archived' => true,
+ 'tags' => ['bar-tag'],
+ ],
+ ];
+
+ foreach ($entries as $reference => $item) {
+ $entry = new Entry($this->getReference($item['user']));
+ $entry->setUrl($item['url']);
+ $entry->setReadingTime($item['reading_time']);
+ $entry->setDomainName($item['domain']);
+ $entry->setMimetype($item['mime']);
+ $entry->setTitle($item['title']);
+ $entry->setContent($item['content']);
+ $entry->setLanguage($item['language']);
+
+ if (isset($item['tags'])) {
+ foreach ($item['tags'] as $tag) {
+ $entry->addTag($this->getReference($tag));
+ }
+ }
+
+ if (isset($item['origin'])) {
+ $entry->setOriginUrl($item['origin']);
+ }
+
+ if (isset($item['starred'])) {
+ $entry->setStarred($item['starred']);
+ }
+
+ if (isset($item['archived'])) {
+ $entry->setArchived($item['archived']);
+ }
+
+ if (isset($item['preview'])) {
+ $entry->setPreviewPicture($item['preview']);
+ }
+
+ $manager->persist($entry);
+ $this->addReference($reference, $entry);
+ }
$manager->flush();
}