]> git.immae.eu Git - github/wallabag/wallabag.git/blame - src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
fixtures: refactor EntryData, TagData, add a new tag
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / DataFixtures / ORM / LoadEntryData.php
CommitLineData
3b815d2d
J
1<?php
2
3namespace Wallabag\CoreBundle\DataFixtures\ORM;
4
5use Doctrine\Common\DataFixtures\AbstractFixture;
6use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
7use Doctrine\Common\Persistence\ObjectManager;
8use Wallabag\CoreBundle\Entity\Entry;
9
10class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
11{
12 /**
8ce32af6 13 * {@inheritdoc}
3b815d2d
J
14 */
15 public function load(ObjectManager $manager)
16 {
bafb9744
KD
17 $entries = [
18 'entry1' => [
19 'user' => 'admin-user',
20 'url' => 'http://0.0.0.0/entry1',
21 'reading_time' => 11,
22 'domain' => 'domain.io',
23 'mime' => 'text/html',
24 'title' => 'test title entry1',
25 'content' => 'This is my content /o/',
26 'language' => 'en',
27 'tags' => ['foo-tag', 'baz-tag'],
28 ],
29 'entry2' => [
30 'user' => 'admin-user',
31 'url' => 'http://0.0.0.0/entry2',
32 'reading_time' => 1,
33 'domain' => 'domain.io',
34 'mime' => 'text/html',
35 'title' => 'test title entry2',
36 'content' => 'This is my content /o/',
37 'origin' => 'ftp://oneftp.tld',
38 'language' => 'fr',
39 ],
40 'entry3' => [
41 'user' => 'bob-user',
42 'url' => 'http://0.0.0.0/entry3',
43 'reading_time' => 1,
44 'domain' => 'domain.io',
45 'mime' => 'text/html',
46 'title' => 'test title entry3',
47 'content' => 'This is my content /o/',
48 'language' => 'en',
49 'tags' => ['foo-tag', 'bar-tag', 'bob-tag'],
50 ],
51 'entry4' => [
52 'user' => 'admin-user',
53 'url' => 'http://0.0.0.0/entry4',
54 'reading_time' => 12,
55 'domain' => 'domain.io',
56 'mime' => 'text/html',
57 'title' => 'test title entry4',
58 'content' => 'This is my content /o/',
59 'language' => 'en',
60 'tags' => ['foo-tag', 'bar-tag'],
61 ],
62 'entry5' => [
63 'user' => 'admin-user',
64 'url' => 'http://0.0.0.0/entry5',
65 'reading_time' => 12,
66 'domain' => 'domain.io',
67 'mime' => 'text/html',
68 'title' => 'test title entry5',
69 'content' => 'This is my content /o/',
70 'language' => 'fr',
71 'starred' => true,
72 'preview' => 'http://0.0.0.0/image.jpg',
73 ],
74 'entry6' => [
75 'user' => 'admin-user',
76 'url' => 'http://0.0.0.0/entry6',
77 'reading_time' => 12,
78 'domain' => 'domain.io',
79 'mime' => 'text/html',
80 'title' => 'test title entry6',
81 'content' => 'This is my content /o/',
82 'language' => 'de',
83 'archived' => true,
84 'tags' => ['bar-tag'],
85 ],
86 ];
87
88 foreach ($entries as $reference => $item) {
89 $entry = new Entry($this->getReference($item['user']));
90 $entry->setUrl($item['url']);
91 $entry->setReadingTime($item['reading_time']);
92 $entry->setDomainName($item['domain']);
93 $entry->setMimetype($item['mime']);
94 $entry->setTitle($item['title']);
95 $entry->setContent($item['content']);
96 $entry->setLanguage($item['language']);
97
98 if (isset($item['tags'])) {
99 foreach ($item['tags'] as $tag) {
100 $entry->addTag($this->getReference($tag));
101 }
102 }
103
104 if (isset($item['origin'])) {
105 $entry->setOriginUrl($item['origin']);
106 }
107
108 if (isset($item['starred'])) {
109 $entry->setStarred($item['starred']);
110 }
111
112 if (isset($item['archived'])) {
113 $entry->setArchived($item['archived']);
114 }
115
116 if (isset($item['preview'])) {
117 $entry->setPreviewPicture($item['preview']);
118 }
119
120 $manager->persist($entry);
121 $this->addReference($reference, $entry);
122 }
371ac69a 123
eb3bd7ef 124 $manager->flush();
3b815d2d
J
125 }
126
127 /**
8ce32af6 128 * {@inheritdoc}
3b815d2d
J
129 */
130 public function getOrder()
131 {
0bf99bb1 132 return 30;
3b815d2d
J
133 }
134}