LoadEventData::setContainer()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Stfalcon\Bundle\EventBundle\DataFixtures\ORM;
4
5
use Doctrine\Common\DataFixtures\AbstractFixture;
6
use Doctrine\Common\Persistence\ObjectManager;
7
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
8
use Symfony\Component\HttpFoundation\File\UploadedFile;
9
use Symfony\Component\DependencyInjection\ContainerInterface;
10
use Stfalcon\Bundle\EventBundle\Entity\Event;
11
12
/**
13
 * LoadEventData Class.
14
 */
15
class LoadEventData extends AbstractFixture implements ContainerAwareInterface
16
{
17
    /**
18
     * @var ContainerInterface
19
     */
20
    private $container;
21
22
    /**
23
     * @param ContainerInterface|null $container
24
     */
25
    public function setContainer(ContainerInterface $container = null)
26
    {
27
        $this->container = $container;
28
    }
29
30
    /**
31
     * @param \Doctrine\Common\Persistence\ObjectManager $manager
32
     */
33
    public function load(ObjectManager $manager)
34
    {
35
        $event = (new Event())
36
            ->setName('Конференция JavaScript fwdays \'18')
37
            ->setSlug('javaScript-framework-day-2018')
38
            ->setBackgroundColor('#1B91CD')
39
            ->setDescription('JavaScript Frameworks Day 2018 - V международная конференция, посвященная популярным JavaScript фреймворкам.')
40
            ->setLogoFile($this->generateUploadedFile('JS_big.svg'))
41
            ->setSmallLogoFile($this->generateUploadedFile('JS_small.svg'))
42
            ->setLogo('JS_big.svg')
43
            ->setSmallLogo('JS_small.svg')
44
            ->setCity('Киев')
45
            ->setPlace('отель "Казацкий"')
46
            ->setAbout('<h3>Как прошла конференция</h3>
47
<iframe width="560" height="315" src="https://www.youtube.com/embed/0cNRmWrq_hw" frameborder="0" allowfullscreen></iframe>
48
<br />
49
50
<br /><br />
51
52
53
<table class="event-details">
54
   <tbody><tr>
55
       <td colspan="2">
56
           <div class="event-details-h">Место проведения:</div>
57
           <p>г. Киев, Конференц-центр отеля Ramada Encore, Столичное шоссе, 103<br />
58
               
59
                </p>
60
       </td>
61
   </tr>
62
   <tr>
63
       <td>
64
           <div class="event-details-h">Время:</div>
65
           <p>17 апреля 2016 года, 09:00 - 20:00</p>
66
       </td>
67
       <td>
68
           <div class="event-details-h">Длительность:</div>
69
           <p>1 полный день</p>
70
       </td>
71
   </tr>
72
 
73
<tr>
74
       <td class="price" colspan="2">
75
           <p><b>Стоимость участия:</b><br/>
76
Все билеты проданы.
77
<!--- <del>1 500 грн. (~$55) – первые 50 билетов (только через сайт)</del><br/>
78
<del>1 800 грн. (~$65) – следующие 100 билетов</del><br/>
79
2 000 грн. (~$73) – оставшиеся билеты
80
</p><br />
81
	 <p>20% cкидка для участников предыдущих конференций</p> --->
82
       </td>
83
   </tr>
84
     <tr>
85
       <td>
86
           <div class="event-details-h">Формат:</div>
87
           <p>Доклады в 3 потока, 1 поток воршопов и обсуждения в перерывах</p>
88
       </td>
89
       <td>
90
           <div class="event-details-h">Языки докладов:</div>
91
           <p>Русский, Украинский, Английский</p>
92
       </td>
93
   </tr>
94
   <tr>
95
       <td>
96
           <div class="event-details-h">Аудитория:</div>
97
           <p>Разработчики, архитекторы, менеджеры проектов из Украины и других стран</p>
98
       </td>
99
       <td>
100
           <div class="event-details-h">Потоки:</div>
101
           <p>4 потока</p>
102
       </td>
103
   </tr>
104
</tbody></table>
105
106
<br />
107
<br />
108
<br />')
109
            ->setDate(new \DateTime('2028-04-19 11:10', new \DateTimeZone('Europe/Kiev')))
110
            ->setDateEnd(new \DateTime('2028-04-19 20:15', new \DateTimeZone('Europe/Kiev')))
111
            ->setReceivePayments(true)
112
            ->setCost(100);
113
        $manager->persist($event);
114
        $this->addReference('event-jsday2018', $event);
115
        $manager->flush();
116
117
        $event = (new Event())
118
            ->setName('PHP Frameworks Day')
119
            ->setSlug('php-frameworks-day-2018')
120
            ->setBackgroundColor('#7586D2')
121
            ->setDescription('PHP frameworks day это конференция по современным PHP фреймворкам (Zend Framework 2, Symfony 2, Silex, Lithium и др.)')
122
            ->setLogoFile($this->generateUploadedFile('PHP_big.svg'))
123
            ->setSmallLogoFile($this->generateUploadedFile('PHP_small.svg'))
124
            ->setLogo('PHP_big.svg')
125
            ->setSmallLogo('PHP_small.svg')
126
            ->setCity('Киев')
127
            ->setPlace('Пока неизвестно')
128
            ->setAbout('<h3>Панельная дискуссия</h3>
129
130
<iframe width="560" height="315" src="https://www.youtube.com/embed/E2APEz7CSZY" frameborder="0" allowfullscreen></iframe><br />
131
<br />
132
133
134
135
136
<p>Традиционно, мы выбрали для вас актуальные и полезные темы докладов от продвинутых иностранных и украинских экспертов с большим практическим опытом работы. Вас ждут доклады в 2 потока, общение со спикерами, перерывы на вкусные кофе-брейки и питательный обед. В конце дня мы разыграем ценные призы от наших постоянных партнеров, а также пригласим всех на веселую афтепати, где сможем расслабиться, еще больше подружиться и пообщаться в неформальной обстановке.</p>
137
138
<p>PHP Frameworks Day уже в четвертый раз проводится в Киеве и собирает множество впечатлений и <a href="http://frameworksdays.com/event/php-frameworks-day-2014/page/feedback">отзывов</a> от участников.</p>
139
140
<br /><br />
141
142
143
<table class="event-details">
144
   <tbody><tr>
145
       <td colspan="2">
146
           <div class="event-details-h">Место проведения:</div>
147
           <p> г. Киев, Конгресс-Холл «Космополит», ул. Вадима Гетьмана, 6 (М Шулявская)<br />
148
               
149
                </p>
150
       </td>
151
   </tr>
152
   <tr>
153
       <td>
154
           <div class="event-details-h">Время:</div>
155
           <p>3 сентября, 2016 года, 09:00 - 19:00</p>
156
       </td>
157
       <td>
158
           <div class="event-details-h">Длительность:</div>
159
           <p>1 полный день</p>
160
       </td>
161
   </tr>
162
 
163
<tr>
164
       <td class="price" colspan="2">
165
           <p><b>Стоимость участия:</b><br/>
166
167
<p>Все билеты проданы, будет доступна бесплатная онлайн-трансляция.</p>
168
       </td>
169
170
171
   </tr>
172
     <tr>
173
       <td>
174
           <div class="event-details-h">Формат:</div>
175
           <p>Доклады в 2 потока, обсуждения в перерывах</p>
176
       </td>
177
       <td>
178
           <div class="event-details-h">Языки докладов:</div>
179
           <p>Русский, Украинский, Английский</p>
180
       </td>
181
   </tr>
182
   <tr>
183
       <td>
184
           <div class="event-details-h">Аудитория:</div>
185
           <p>Разработчики, архитекторы, менеджеры проектов из Украины и других стран</p>
186
       </td>
187
       <td>
188
           <div class="event-details-h">Потоки:</div>
189
           <p>2 потока</p>
190
       </td>
191
   </tr>
192
</tbody></table>
193
194
<br />
195
<br />
196
<br />')
197
            ->setActive(true)
198
            ->setDate((new \DateTime('now', new \DateTimeZone('Europe/Kiev')))->add(new \DateInterval('P1M')))
199
            ->setCost(100);
200
        $manager->persist($event);
201
        $this->addReference('event-phpday2018', $event);
202
203
        $event = (new Event())
204
            ->setName('Not Active Frameworks Day')
205
            ->setSlug('not-active-frameworks-day')
206
            ->setDescription('Это событие тестовое, но должно быть неактивным')
207
            ->setLogoFile($this->generateUploadedFile('phpel_big.svg'))
208
            ->setSmallLogoFile($this->generateUploadedFile('phpel_small.svg'))
209
            ->setLogo('phpel_big.svg')
210
            ->setSmallLogo('phpel_small.svg')
211
            ->setCity('Где-то там')
212
            ->setPlace('Пока неизвестно')
213
            ->setAbout('Описание события')
214
            ->setActive(false)
215
            ->setDate(new \DateTime('2017-04-02 10:30', new \DateTimeZone('Europe/Kiev')))
216
            ->setDateEnd(new \DateTime('2017-04-03 20:15', new \DateTimeZone('Europe/Kiev')))
217
            ->setCost(100);
218
        $manager->persist($event);
219
        $this->addReference('event-not-active', $event);
220
        $manager->flush();
221
222
        $event = (new Event())
223
            ->setName('Конференция Highload fwdays \'17')
224
            ->setSlug('Highload-frameworks-day-2017')
225
            ->setBackgroundColor('#00776F')
226
            ->setDescription('Конференция Highload fwdays \'17')
227
            ->setLogoFile($this->generateUploadedFile('highload_big.svg'))
228
            ->setLogo('highload_big.svg')
229
            ->setSmallLogoFile($this->generateUploadedFile('highload_small.svg'))
230
            ->setSmallLogo('highload_small.svg')
231
            ->setCity('Киев')
232
            ->setPlace('отель "Казацкий"')
233
            ->setAbout('
234
<p>Highload fwdays’17 - это конференция, посвященная разработке высоконагруженных технологичных проектов, а также работе с архитектурой и микросервисами, базами данных, машинному обучению, Big Data и не только.</p>
235
236
<p>Будут представлены доклады по направлениям:</p>
237
<ul>
238
<li>Architecture (Backend architecture (scalability), Microservices, Frontend, Testing)</li> 
239
<li>Data Science (Big Data, Machine Learning, AI)</li>
240
<li>DevOps</li>
241
<li>Databases (SQL, NoSQL, Storage Systems)</li>
242
</ul>
243
244
245
<table class="event-details">
246
   <tbody><tr>
247
       <td colspan="2">
248
           <div class="event-details-h">Место проведения:</div>
249
           <p>г. Киев, Конгресс-Холл «Космополит», ул. Вадима Гетьмана, 6 (М Шулявская)<br />
250
               
251
                </p>
252
       </td>
253
   </tr>
254
   <tr>
255
       <td>
256
           <div class="event-details-h">Время:</div>
257
           <p>14 октября 2017 года</p>
258
       </td>
259
       <td>
260
           <div class="event-details-h">Длительность:</div>
261
           <p>1 полный день</p>
262
       </td>
263
   </tr>
264
 
265
<tr>
266
       <td class="price" colspan="2">
267
           <p><b>Стоимость участия:</b><br/>
268
<del>2 600 грн. (~$100) – первые 50 билетов (только через сайт)</del><br/>
269
2 900 грн. (~$112) – следующие 300 билетов</del><br/>
270
3 500 грн. (~$134) – оставшиеся билеты 
271
</p><br />
272
	 <p>20% cкидка для участников предыдущих конференций</p> 
273
       </td>
274
   </tr>
275
     <tr>
276
       <td>
277
           <div class="event-details-h">Формат:</div>
278
           <p>Доклады в несколько потоков и обсуждения в перерывах</p>
279
       </td>
280
       <td>
281
           <div class="event-details-h">Языки докладов:</div>
282
           <p>Русский, Украинский, Английский</p>
283
       </td>
284
   </tr>
285
   <tr>
286
       <td>
287
           <div class="event-details-h">Аудитория:</div>
288
           <p>Разработчики, архитекторы, менеджеры проектов из Украины и других стран</p>
289
       </td>
290
       <td>
291
           <div class="event-details-h">Потоки:</div>
292
           <p>4</p>
293
       </td>
294
   </tr>
295
</tbody></table>
296
297
298
<!--<p>Сейчас мы формируем программу и ищем спикеров.</p><br />
299
<p>Если вы хотите выступить у нас, заполняйте заявку, мы сразу оповестим вас, что получили её и сколько нам нужно времени на рассмотрение.</p>
300
<center><h3><a href="https://docs.google.com/forms/d/e/1FAIpQLScpfK2kcV8wyglJFyAe5tUKC4LWdzNN7K06HzBRz2hqSjqVAQ/viewform">Сall for papers</a></h3></center>
301
302
303
<p>С нетерпение ждем ваших интересных докладов!</p><br />-->
304
305
<p> Присоединяйтесь к нам в <a href="https://www.facebook.com/events/486873021658319">Facebook</a> и <a href="https://t.me/highload_fwdays">Telegram</a>.</p>
306
307
308
309
<br /><br />')
310
            ->setDate(new \DateTime('2018-03-02', new \DateTimeZone('Europe/Kiev')))
311
            ->setCost(100);
312
        $manager->persist($event);
313
        $this->addReference('event-highload-day', $event);
314
        $manager->flush();
315
316
        $event = (new Event())
317
            ->setName('PHP Day')
318
            ->setSlug('php-day-2017')
319
            ->setBackgroundColor('#7586D2')
320
            ->setDescription('test description')
321
            ->setLogoFile($this->generateUploadedFile('PHP_big.svg'))
322
            ->setSmallLogoFile($this->generateUploadedFile('PHP_small.svg'))
323
            ->setLogo('PHP_big.svg')
324
            ->setSmallLogo('PHP_small.svg')
325
            ->setCity('Киев')
326
            ->setPlace('отель "Казацкий"')
327
            ->setAbout('<h2>Панельная дискуссия</h2>
328
<iframe width="560" height="315" src="https://www.youtube.com/embed/5CdSEyZmLbc" frameborder="0" allowfullscreen></iframe><br />
329
330
<p>Конференция PHP Frameworks Day — это актуальные и доступные  доклады от самых продвинутых php-разработчиков, возможность легко и  быстро разобраться с функционалом фреймворков, чтобы впоследствии  максимально эффективно использовать их в проектах. Это непринужденное общение, талантливые и перспективные в IT-сфере участники, это отличный повод завести новые контакты или обновить старые знакомства.</p>
331
<p><strong>PHP Frameworks Day проводится уже в третий раз. </strong> 
332
</p>
333
334
335
<br /><br />
336
337
<table class="event-details">
338
   <tbody><tr>
339
       <td colspan="2">
340
           <div class="event-details-h">Место проведения:</div>
341
           <p>г. Киев, Конференц-центр отеля Ramada Encore, Столичное шоссе, 103<br />
342
                        </p>
343
       </td>
344
   </tr>
345
   <tr>
346
       <td>
347
           <div class="event-details-h">Время:</div>
348
           <p>17 октября 2015, 09:00 - 19:00</p>
349
       </td>
350
       <td>
351
           <div class="event-details-h">Длительность:</div>
352
           <p>1 полный день</p>
353
       </td>
354
   </tr>
355
 <tr>
356
       <td class="price" colspan="2">
357
           <p><b>Стоимость участия:</b><br/>
358
<!--- <del>1 500 грн. (~$68) – первые 50 билетов (только через сайт)</del><br/>
359
1 800 грн. (~$82) – следующие 150 билетов<br/>
360
2 000 грн. (~$90) – оставшиеся билеты ---> 
361
</p><br /> 
362
	 <p>20% cкидка для участников предыдущих конференций</p>
363
       </td>
364
   </tr>
365
     <tr>
366
       <td>
367
           <div class="event-details-h">Формат:</div>
368
           <p>Доклады в 2 потока и обсуждения в перерывах</p>
369
       </td>
370
       <td>
371
           <div class="event-details-h">Языки докладов:</div>
372
<p>Украинский, Русский, Английский</p>           
373
       </td>
374
   </tr>
375
   <tr>
376
       <td>
377
           <div class="event-details-h">Аудитория:</div>
378
           <p>Разработчики, архитекторы, менеджеры проектов из Украины и стран ближнего зарубежья</p>
379
       </td>
380
       <td>
381
           <div class="event-details-h">Потоки:</div>
382
           <p>2 потока</p>
383
       </td>
384
   </tr>
385
</tbody></table>
386
387
<br />
388
<br />
389
<br />')
390
            ->setDate(new \DateTime('2017-12-19', new \DateTimeZone('Europe/Kiev')))
391
            ->setDate(new \DateTime('2017-12-20', new \DateTimeZone('Europe/Kiev')))
392
            ->setReceivePayments(true)
393
            ->setCost(1000);
394
        $manager->persist($event);
395
        $this->addReference('event-phpday2017', $event);
396
397
        $manager->flush();
398
    }
399
400
    /**
401
     * Generate UploadedFile object from local file. For VichUploader.
402
     *
403
     * @param string $filename
404
     *
405
     * @return UploadedFile
406
     */
407
    private function generateUploadedFile($filename)
408
    {
409
        $fullPath = realpath($this->getKernelDir().'/../web/assets/img/events/'.$filename);
410
        $tmpFile = tempnam(sys_get_temp_dir(), 'event');
411
        if (file_exists($fullPath)) {
412
            copy($fullPath, $tmpFile);
413
414
            return new UploadedFile($tmpFile, $filename, null, null, null, true);
415
        }
416
417
        return null;
418
    }
419
420
    /**
421
     * @return string
422
     */
423
    private function getKernelDir()
424
    {
425
        return $this->container->get('kernel')->getRootDir();
426
    }
427
}
428