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