-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.html
1532 lines (1291 loc) · 102 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html>
<head>
<title>PHPConf.Asia 2018</title>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-rc.2/css/materialize.min.css">
<link type="text/css" rel="stylesheet" href="/styles/main-20180401.css" media="screen,projection" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="apple-touch-icon" sizes="57x57" href="/icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/icons/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<meta name="description" content="PHPConf.Asia - The Pan-Asian PHP conference!" />
<meta property="og:title" content="PHPConf.Asia 2018" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://2018.phpconf.asia/" />
<meta property="og:image" content="https://2018.phpconf.asia/images/slides1.jpg" />
<meta property="og:site_name" content="PHPConf.Asia" />
<meta property="fb:admins" content="711713493" />
<meta property="og:description" content="The Pan-Asian PHP conference! Conference days are on 27th to 28th September 2018. Workshops days are on 26 and 29 Sept. CFP opens now!" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@PHPConfAsia" />
<meta name="twitter:domain" content="phpconf.asia" />
<meta name="twitter:description" content="The Pan-Asian PHP conference! Conference days are on 27th to 28th September 2018. Workshops days are on 26 and 29 Sept. CFP opens now!" />
<meta name="twitter:image" content="https://2018.phpconf.asia/images/phpconfasia-logo.png" />
<meta itemprop="image" content="https://2018.phpconf.asia/images/phpconfasia-logo.png" />
<script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-N53PK2F');
</script>
</head>
<body>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N53PK2F"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<div class="navbar-fixed">
<nav>
<div class="nav-wrapper">
<a href="/" class="brand-logo hide-on-med-and-down"><span>PHPConf.Asia</span></a>
<a href="/" class="brand-logo center hide-on-large-only"><span>PHPConf.Asia</span></a>
<a href="#" data-target="mobile-nav" class="sidenav-trigger"><i class="material-icons">menu</i></a>
<ul class="right hide-on-med-and-down">
<li class="active"><a href="/">Home</a></li>
<li><a href="https://phpconfasia2018.codecraft.com.sg" target="_blank">Tickets</a></li>
<li><a href="/#schedule">Schedule</a></li>
<li><a href="/#venue">Venue</a></li>
<li><a href="/#sponsors">Sponsors</a></li>
<li><a href="/#speakers">Speakers</a></li>
<li><a href="/#singapore">About Singapore</a></li>
<li><a href="/code-of-conduct.html">Code of Conduct</a></li>
<li><a href="https://twitter.com/phpconfasia" target="_blank">Twitter</a></li>
<li><a href="https://2016.phpconf.asia" target="_blank">2016</a></li>
</ul>
</div>
<div class="row date-details hide-on-med-and-down z-depth-1">
<div class="col s12 right-align">
<h5 class="red-text">Workshops on 26<sup>th</sup> & 29<sup>th</sup> September, 2018 | Conference on 27<sup>th</sup> & 28<sup>th</sup> September, 2018</h5>
</div>
</div>
</nav>
</div>
<ul class="sidenav" id="mobile-nav">
<li><a href="/">Home</a></li>
<li><a href="https://phpconfasia2018.codecraft.com.sg" target="_blank">Tickets</a></li>
<li><a href="/#schedule">Schedule</a></li>
<li><a href="/#venue">Venue</a></li>
<li><a href="/sponsorship.html">Sponsors</a></li>
<li><a href="/#speakers">Speakers</a></li>
<li><a href="/#singapore">About Singapore</a></li>
<li><a href="/code-of-conduct.html">Code of Conduct</a></li>
<li><a href="https://twitter.com/phpconfasia" target="_blank">Twitter</a></li>
<li><a href="https://2016.phpconf.asia" target="_blank">2016</a></li>
</ul>
<div class="main">
<div class="slider">
<ul class="slides">
<li class="valign">
<img src="/images/slides1.jpg">
<div class="caption center-align">
<h4>The Pan-Asian PHP Community</h4>
<h5 class="light grey-text text-lighten-3">26 to 29 September 2018 in Singapore</h5>
</div>
</li>
<li>
<img src="/images/slides5.jpg">
<div class="caption center-align">
<h4>Stronger in Diversity</h4>
<h5 class="light grey-text text-lighten-3">Asia at its best. We learn together and share knowledge</h5>
</div>
</li>
<li>
<img src="/images/slides3.jpg">
<div class="caption center-align">
<h4>Renowned Speakers</h4>
<h5 class="light grey-text text-lighten-3">Learn from the thought leaders of industry</h5>
</div>
</li>
<li>
<img src="/images/slides4.jpg">
<div class="caption center-align">
<h4>Camaraderie</h4>
<h5 class="light grey-text text-lighten-3">Friendship that crosses boundaries</h5>
</div>
</li>
<li>
<img src="/images/slides6.jpg">
<div class="caption center-align">
<h4>Memories of Good Times</h4>
<h5 class="light grey-text text-lighten-3">Because. Swag.</h5>
</div>
</li>
<li>
<img src="/images/slides7.jpg">
<div class="caption center-align">
<h4>Preparing a New Generation</h4>
<h5 class="light grey-text text-lighten-3">Via student outreach</h5>
</div>
</li>
</ul>
</div>
<div class="section row">
<div class="col s12">
<div class="container">
<div class="row">
<div class="col s12 offset-m3 m6">
<div class="card">
<div class="card-content center-align">
<span class="card-title">
<h3>Tickets Available Now!</h3>
</span>
<a class="btn waves-effect waves-light btn-large green lighten-1" href="https://phpconfasia2018.codecraft.com.sg" target="_blank"><i class="material-icons right">event_seat</i>Buy Your Tickets</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<a name="schedule"></a>
<div class="section row">
<div class="col s12 center-align">
<h3>Schedule</h3>
</div>
<!-- Summary Schedule -->
<div class="col s12">
<div class="container">
<table>
<thead>
<tr>
<td style="width: 20%">Day</td>
<td style="width: 20%">Time</td>
<td style="width: 30%">Venue</td>
<td style="width: 30%">Activity (click link for details)</td>
</tr>
</thead>
<tbody>
<tr class="yellow lighten-4">
<td rowspan="2">Wed 26 Sep</td>
<td>08:30 - 17:00</td>
<td>Microsoft, Level 21, One Marina Boulevard, Singapore 018989</td>
<td><a href="/#special-workshop">Special Workshop: Getting Started with PHPUnit</a></td>
</tr>
<tr class="yellow lighten-4">
<td>19:00 - 21:00</td>
<td>Microsoft, 22nd Floor, One Marina Boulevard, Singapore 018989</td>
<td><a href="https://www.meetup.com/sgphpug/events/254293718/">Singapore PHP Community Combined Meetup 2018</a></td>
</tr>
<tr>
<td rowspan="2">Thu 27 Sep</td>
<td>08:00 - 17:00</td>
<td>NUSS Kent Ridge Guild House, 9 Kent Ridge Drive, Singapore 119241</td>
<td><a href="/#conference">Conference Day 1</a></td>
</tr>
<tr>
<td>19:15 - 21:00</td>
<td>TBA</td>
<td>Speakers' Dinner</td>
</tr>
<tr class="yellow lighten-4">
<td rowspan="2">Fri 28 Sep</td>
<td>08:00 - 17:00</td>
<td>NUSS Kent Ridge Guild House, 9 Kent Ridge Drive, Singapore 119241</td>
<td><a href="/#conference">Conference Day 2</a></td>
</tr>
<tr class="yellow lighten-4">
<td>19:00 - 21:00</td>
<td>TBA</td>
<td>After Party</td>
</tr>
<tr>
<td>Sat 29 Sep</td>
<td>08:30 - 18:00</td>
<td>Singapore Polytechnic, Blk T21, Level 4, 500 Dover Road, Singapore 139651</td>
<td><a href="/#workshop-day">Workshop Day</a></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="col s12">
<div class="container">
<div class="row section">
<a name="special-workshop"></a>
<h4 class="center-align">Special Workshop: Getting Started with PHPUnit (Wed, 26 September 2018)</h4>
<h5 class="center-align">Location: Microsoft Auditorium Singapore, Level 21 (MPR 01), One Marina Boulevard, Singapore 018989</h5>
<div class="col s12 offset-m1 m10 center-align">
<p>This is a full-day hands-on workshop. <em>Lunch and tea break will be provided.</em></p>
</div>
<div class="col s12 offset-m1 m10 center-align">
<p><a href="https://phpconfasia2018.codecraft.com.sg" target="_blank" class="btn-large waves-effect waves-light green lighten-1"><i class="material-icons right">event_seat</i>BUY WORKSHOP TICKETS NOW</a></p>
</div>
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 orange lighten-4">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/sebastian_bergmann.png" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/s_bergmann" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @s_bergmann</a></p>
</div>
<div class="col s12 m9">
<h4>Instructor: Sebastian Bergmann</h4>
<p>If you want to be sure that your software works correctly then you need to continuously test it. Automated tests save you from pressing F5 in the browser all the time as well as from using debug statements such
as var_dump() in your code. They are also cheaper than manual tests and easier to implement than you may think.</p>
<p>The attendees of this full-day workshop will learn how to write and execute tests as well as how to integrate automated tests into their development process.</p>
<h5>About the speaker</h5>
<p>Sebastian Bergmann has believed in Open Source from day one. He has a university degree in computer science, and has created the industry-leading testing tool PHPUnit, which has played a vital role in professionalizing
software development with PHP. He shares his comprehensive experiences in publications and at conferences.</p>
<p>As Co-Founder and Principal Consultant of The PHP Consulting Company (thePHP.cc), Sebastian helps his clients to develop software successfully. In his free time, he works on PHPUnit, likes board games, and really
enjoys making fancy ice cream.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m2 m8">
<table>
<thead>
<tr>
<td>Time</td>
<td>Wed, 26 Sept 2018</td>
</tr>
</thead>
<tbody>
<tr class="yellow lighten-4">
<td><h6>08:30</h6></td>
<td>Registration</td>
</tr>
<tr class="indigo lighten-5">
<td><h6>09:00</h6></td>
<td>Morning Segment</td>
</tr>
<tr>
<td><h6>12:30</h6></td>
<td>Lunch</td>
</tr>
<tr class="indigo lighten-5">
<td><h6>13:30</h6></td>
<td>Afternoon Segment</td>
</tr>
<tr>
<td><h6>17:00</h6></td>
<td>Closing</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col s12">
<div class="container">
<div class="row section">
<a name="conference"></a>
<h4 class="center-align">Conference Days (Thurs, 27 - Fri, 28 September 2018)</h4>
<h5 class="center-align">Location: NUSS Kent Ridge Guild House, 9, Kent Ridge Drive, Singapore 119241</h5>
<div class="col s12 offset-m1 m10 center-align">
<p>This is a 2 day conference consisting of 12 regular talks (35 mins) and 6 lightning talks (15 minutes).<br> This will be a single-track conference (in 1 auditorium).<br> <em>Breakfast, lunch and tea breaks will be provided.</em></p>
<p><a href="https://phpconfasia2018.codecraft.com.sg" target="_blank" class="btn-large waves-effect waves-light green lighten-1"><i class="material-icons right">event_seat</i>BUY CONFERENCE TICKETS NOW</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<table>
<thead>
<tr>
<td style="width: 10%">Time</td>
<td style="width: 40%">Day 1 (Thurs, 27 Sept 2018)</td>
<td style="width: 10%">Time</td>
<td style="width: 40%">Day 2 (Fri, 28 Sept 2018)</td>
</tr>
</thead>
<tbody>
<tr class="yellow lighten-4">
<td><h6>08:00</h6></td>
<td>Registration</td>
<td><h6>08:00</h6></td>
<td>Registration</td>
</tr>
<tr>
<td><h6>08:45</h6></td>
<td>Opening Address</td>
<td><h6>08:45</h6></td>
<td>Opening Address</td>
</tr>
<tr class="orange lighten-4">
<td><h6>09:00</h6></td>
<td>Opening Keynote:<h6>Rasmus Lerdorf</h6></td>
<td><h6>09:00</h6></td>
<td>Keynote 2:
<h6>How PHPUnit works, why it works like that, why I wish it did not work like that, and what I'm doing about it</h6>
<strong>Sebastian Bergmann</strong></td>
</tr>
<tr class="indigo lighten-5">
<td><h6>09:40</h6></td>
<td><h6>Writing Viruses for Fun, not Profit</h6>
<strong>Ben Dechrai</strong></td>
<td><h6>09:40</h6></td>
<td><h6>PHP Reactive Programming</h6>
<strong>Dolly Aswin Harahap</strong></td>
</tr>
<tr>
<td><h6>10:20</h6></td>
<td>Tea Break</td>
<td><h6>10:20</h6></td>
<td>Tea Break</td>
</tr>
<tr class="indigo lighten-5">
<td><h6>10:50</h6></td>
<td><h6>Magento 2 Module in 40 Minutes or Bust</h6>
<strong>Ben Marks</strong></td>
<td class="yellow lighten-4"><h6>10:50</h6></td>
<td class="yellow lighten-4"><h6>Scaling IO-bound application in the cloud</h6>
<strong>Mikko Lammi</strong></td>
</tr>
<tr class="indigo lighten-5">
<td><h6>11:30</h6></td>
<td><h6>prooph/micro and FPP - less is more</h6>
<strong>Sascha-Oliver Prolic</strong></td>
<td><h6>11:30</h6></td>
<td><h6>Async advantage with Sync simplicity</h6>
<strong>Arul Kumaran</strong></td>
</tr>
<tr>
<td><h6>12:10</h6></td>
<td>Lunch</td>
<td><h6>12:10</h6></td>
<td>Lunch</td>
</tr>
<tr class="indigo lighten-5">
<td><h6>12:50</h6></td>
<td><h6>JSON data structure – the hidden gem inside your database engine</h6>
<strong>Mizanur Rahman</strong></td>
<td class="yellow lighten-4"><h6>12:50</h6></td>
<td class="yellow lighten-4"><h6>What's coming in PhpStorm</h6>
<strong>Alexey Gopachenko, PhpStorm Team Lead</strong></td>
</tr>
<tr>
<td><h6>13:20</h6></td>
<td>Lunch (continued)</td>
<td><h6>13:20</h6></td>
<td>Lunch (continued)</td>
</tr>
<tr class="teal lighten-5">
<td><h6>13:50</h6></td>
<td><h6>Getting Wordpress OOP by using Corcel</h6>
<strong>Joe Palala</strong></td>
<td><h6>13:50</h6></td>
<td><h6>Building the LaravelPH community</h6>
<strong>Joe Palala</strong></td>
</tr>
<tr class="teal lighten-5">
<td><h6>14:05</h6></td>
<td><h6>What's New in Xdebug?</h6>
<strong>Derick Rethans</strong></td>
<td><h6>14:05</h6></td>
<td><h6>Introduction to PHP port of GraphQL</h6>
<strong>Hoa Nguyen</strong></td>
</tr>
<tr class="teal lighten-5">
<td><h6>14:20</h6></td>
<td><h6>Infinity Wars: REST vs GraphQL</h6>
<strong>Yuri Pratama</strong></td>
<td><h6>14:20</h6></td>
<td><h6>Introduction of most popular eCommerce CMS in Japan</h6>
<strong>Tao Sasaki</strong></td>
</tr>
<tr>
<td><h6>14:35</h6></td>
<td>Tea Break</td>
<td><h6>14:35</h6></td>
<td>Tea Break</td>
</tr>
<tr class="indigo lighten-5">
<td><h6>15:20</h6></td>
<td><h6>Instant Upgrades with Rector</h6>
<strong>Tomas Votruba</strong></td>
<td><h6>15:20</h6></td>
<td><h6>Code decoupling from Symfony (and others frameworks)</h6>
<strong>Miguel Gallardo</strong></td>
</tr>
<tr class="orange lighten-4">
<td><h6>16:10</h6></td>
<td>Panel Discussion:
<h6>PHP - The journey so far (and what's ahead)</h6>
<strong>Rasmus Lerdorf, Sebastian Bergman, Derick Rethans</strong></td>
<td><h6>16:10</h6></td>
<td>Closing Keynote:
<h6>Machine Learning APIs with PHP</h6>
<strong>Gabriela Ferrara</strong></td>
</tr>
<tr>
<td><h6>17:00</h6></td>
<td>Closing Address</td>
<td><h6>17:00</h6></td>
<td>Closing Address</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 orange lighten-4">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/rasmus.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/rasmus" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @rasmus</a></p>
</div>
<div class="col s12 m9">
<h3>Opening Keynote</h3>
<h4>Rasmus Lerdorf</h4>
<h5>Creator of PHP</h5>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 orange lighten-4">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/sebastian_bergmann.png" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/s_bergmann" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @s_bergmann</a></p>
</div>
<div class="col s12 m9">
<h3>Keynote: Towards a Better PHPUnit</h3>
<h4>Sebastian Bergmann</h4>
<h5>Creator of PHPUnit, Co-Founder, thePHPcc and bbpconsulting</h5>
<p>Join Sebastian Bergmann, the creator of PHPUnit, to learn how PHPUnit works, why it works like that, why he wishes it did not work like that, and what he is doing about it.</p>
<h5>About the speaker</h5>
<p>Sebastian Bergmann has believed in Open Source from day one. He has a university degree in computer science, and has created the industry-leading testing tool PHPUnit, which has played a vital role in professionalizing
software development with PHP. He shares his comprehensive experiences in publications and at conferences.</p>
<p>As Co-Founder and Principal Consultant of The PHP Consulting Company (thePHP.cc), Sebastian helps his clients to develop software successfully. In his free time, he works on PHPUnit, likes board games, and really
enjoys making fancy ice cream.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 orange lighten-4">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/gabidavila.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/gabidavila" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @gabidavila</a></p>
</div>
<div class="col s12 m9">
<h3>Keynote: Machine Learning APIs with PHP</h3>
<h4>Gabriela Ferrara</h4>
<h5>Google</h5>
<p>ML is for people with PhD, right? Actually, no. ML is for regular developers too! You can make use from “pre-baked” trained models that Google offers through their set of APIs, or even train a custom model with Auto ML without knowing anything about Machine Learning or TensorFlow code. After all, it’s just an API call!</p>
<h5>About the speaker</h5>
<p>Gabi is a Developer Advocate on Google Cloud and a passionate Software Engineer. She likes simplifying complex systems, and believes abstractions are best when they can be understood in a real life example. She’s driven to go beyond DBA lingo to make database and storage technology more accessible to software developers.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/bendechrai.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/bendechrai" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @bendechrai</a></p>
</div>
<div class="col s12 m9">
<h3>Writing Viruses for Fun, not Profit</h3>
<h4>Ben Dechrai</h4>
<h5>CTO for Hire</h5>
<p>Going viral hasn't always been considered good. Whether you're fighting the common cold, or trying to remove the ILOVEYOU computer worm from your corporate file server, two things are certain: your immune system is based on your gut health, and computers have really poor gut health.</p>
<p>Stopping viruses is hard. The main reason for this is that viruses are really clever. They've evolved over time to escape detection. Each previously detected virus allows the next iteration of the virus to become more resilient. The second reason is that your computer's gut health has to fight every virus, whereas each virus just has to find one immuno-compromised system to survive.</p>
<p>Let's work out how viruses hide. How to they sneak past the checkpoints. How they attach themselves to your system. How they fight detection, and removal. We'll look at aspects such as self-replication, cryptographic obfuscation, and touch on methods of delivery and infection.</p>
<p>Now that you're thinking like a virus writer, you can anticipate which areas of your applications need hardening. Just remember, we're doing it for good, not profit :)</p>
<p>This presentation will feature live demos of writing PHP viruses, and infection of willing targets. The theories apply equally to many languages, so an understanding of PHP is not required.</p>
<h5>About the speaker</h5>
<p>Ben Dechrai is a technologist, presenter, author, and hard and-core privacy advocate. When he's not on stage, or sharing his ideas and views on privacy, security, and software development, he applies these passions to the architecture and design of software systems for businesses of all sizes.</p>
<p>His staunch support of civil liberties saw him launch a national campaign in Australia to fight against the 2016 Census debacle. He's now working on the design and creation of privacy-respecting IoT systems for home automation.</p>
<p>With what spare time he has, Ben enjoys bringing communities together, by running a number of events throughout the year, from conferences and meetups, to end-of-year parties and comedy shows.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/mg3dem.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/mg3dem" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @mg3dem</a></p>
</div>
<div class="col s12 m9">
<h3>Code decoupling from Symfony (and others frameworks)</h3>
<h4>Miguel Gallardo</h4>
<h5>Propoint</h5>
<p>Frameworks are very helpful to solve common problems when developing an application. But what happens if we have to move to a new version or another framework? In this talk I will show how my company tries to keep independent of any framework, decoupling our business logic from symfony.</p>
<h5>About the speaker</h5>
<p>I have more than 13 years working on the design and development end to end of sites, application and systems, working for a company or for his own. Always learning to improve my skills and to acquire new technologies. I have become a polyglot developer who works on multiple programming languages applying best practices and using agile methodologies; with experience in tech leadership roles.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/dolly_aswin.jpg" alt="" class="circle responsive-img">
</div>
<div class="col s12 m9">
<h3>PHP Reactive Programming </h3>
<h4>Dolly Aswin Harahap</h4>
<h5>Xtend Indonesia</h5>
<p>The term reactive was very famous recently. Not only did it get trending, but it has started ruling the software development sector with new blog posts articles every day, and presentations, emerging frameworks and libraries, and more.</p>
<p>We are wondering about reactive programming. Why is everyone getting crazy with it? What does reactive programming exactly mean? What are the benefits of reactive programming? And, finally, should we learn it?</p>
<p>On this event, I will introduce the Reactive Programming in PHP using RxPHP library.</p>
<h5>About the speaker</h5>
<p>Dolly Aswin is currently IT Manager of Xtend Indonesia. He start working as PHP Prgrammer in 2005. And since 2009 - 2017 he works as Freelance Software Developer on Upwork (formerly oDesk). He also Zend Certified Engineer (PHP5, ZF1 and ZF2)</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/sasaprolic.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/sasaprolic" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @sasaprolic</a></p>
</div>
<div class="col s12 m9">
<h3>prooph/micro and FPP - less is more</h3>
<h4>Sascha-Oliver Prolic</h4>
<h5>Prolic IT</h5>
<p>I've written event sourced applications with prooph for a while now, after some time I realized, that there is some boilerplate I need to write again and again. Boring stuff that leads to errors pretty quickly, because I'm not paying attention that much on repetitive boilerplate code I need to write. Also I realized that I don't need my favourite framework that much anymore and when creating some small microservices (like one for each aggregate), their need really disappears. Let me invite you to yet another journey, from standard application framework scenarios, to microservices and how functional programming and code generators can make a difference to eliminate so much boilerplate, that your applications are getting slimmer and slimmer.</p>
<h5>About the speaker</h5>
<p>Maintainer of the prooph components, zfc-rbac, zfr-oauth2-server, HumusAmqp and FPP, contributor to zend framework, php-enum, prophecy, phpunit, Doctrine and many many more</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/votrubaT.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/votrubaT" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @votrubaT</a></p>
</div>
<div class="col s12 m9">
<h3>Instant Upgrades with Rector</h3>
<h4>Tomas Votruba</h4>
<h5>Péhápkaři</h5>
<p>Before composer, we downloaded packages manually. But how do you upgrade to newer framework version? Still manually?</p>
<p>In non-PHP world, Google and Facebook already use such instant upgrade tools. Thanks to nikic/php-parser a door opened in PHP for such a tool ...and Rector was born.</p>
<p>I’ll show you how Rector handles 80 % of boring upgrades for you - in 1 CLI command.</p>
<h5>About the speaker</h5>
<p>Tomas loves PHP and connecting people, so he founded Czech & Slovak PHP Community Pehapkari in 2015, where all PHP developers can share their knowledge, chat on Slack or grab a beer.</p>
<p>His passion is open-source for lazy people - instant upgrades and coding standards. He takes care of Rector and EasyCodingStandard packages.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/mizan.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/mizan" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @mizan</a></p>
</div>
<div class="col s12 m9">
<h3>JSON data structure – the hidden gem inside your database engine</h3>
<h4>Mizanur Rahman</h4>
<h5>Telenor Health A/S</h5>
<p>We are very much obsessed or bound to use a fixed structural database design for our projects. The traditional column based table design along with normalization makes our life crippled within lots of tables and joins. The BLOB was there but was not flexible enough to be used everywhere. JSON is one of the most used structure for data transmission from one service to another and also storing in the database. It gives flexibility to store a structure data as a JSON object and performs operation on the JSON object through queries. Many developers are not aware of this great gem inside their database engine and end up creating larger tables with lots of columns or many tables to keep the database normalized. In this talk I want to focus on JSON data structure and PostgreSQL support for it. From my professional experience of scaling service for 20 million users and millions of records every day, I want to share the experience and how you can we work with it with a practical demo.</p>
<h5>About the speaker</h5>
<p>I am Mizanur Rahman, a PHP fanatic who loves to dig deeper in PHP and related technologies. Working in different web technologies for last 17 years and still learning new technologies. I work for Telenor Health, a norway based digital healthcare platform focusing on healthcare for all specially those below poverty line. I am currently playing the role of Head of Engineering and building efficient, scalable and secure micro-services for our millions of subscribers. In daily life i love solving problems and prepare future proof architecture and solutions. I am an agilist in practice and a technology evangelist for Scrum. I am administrator of largest PHP group in Asia, PHPXperts with more than 25000 members and running the group for last 14 years. I am also administrator of groups like Laravel Bangladesh, Agile Bangladesh and Go lang Bangladesh.</p>
<p>I have published 3 books from Pack publishing and my recent one was "PHP 7 data structures and algorithms". I am an international tech speaker and spoken in many international scrum and developers events in both Bangladesh and outside Bangladesh.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/arul.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/_Arul" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @_Arul</a></p>
</div>
<div class="col s12 m9">
<h3>Implementing async and await in PHP</h3>
<h4>Arul Kumaran</h4>
<h5>Logical Steps</h5>
<p>Even now, many assume PHP is only synchronous and not capable of async processes, which is wrong. </p>
<p>Asynchronous execution has several advantages. Letting you multitask on a single thread. That is cooperative multitasking. Each running task gives the control back to the system when idle. For example, waiting for an HTTP response or IO operation.</p>
<p>All these are well and fine, but the asynchronous code is messy and hard to maintain. This presentation shows how to write async code in a synchronous fashion to get the best of both worlds.</p>
<p>Generators with the yield keyword, are the most underused feature in PHP. It has great potential. We can take advantage of them by implementing async and await in PHP on our own!</p>
<h5>About the speaker</h5>
<p>Arul is a self-taught full stack developer. He is the Author of Restler API Server Framework. He founded Luracast, to provide developers with free tools and open source software. He is currently working on the blockchain solution integrating PHP. Home automation and IOT is his latest hobby.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/benmarks.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/benmarks" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @benmarks</a></p>
</div>
<div class="col s12 m9">
<h3>Magento 2 Module in 40 Minutes or Bust</h3>
<h4>Ben Marks</h4>
<h5>Magento</h5>
<p>While many things (Composer, PSR compliance, MVC, API layer, and test coverage) about Magento 2 will feel familiar to modern PHP developers, what better way to dig into how the framework works than by building a module? This live coding exercise demonstrates both Magento's modular architecture and its plugin system for customizing core behavior.</p>
<h5>About the speaker</h5>
<p>Ben is a voting representative in the PHP FIG and has more than 10 years in open source commerce working with some of the biggest brands. He serves as an educator and mentor for Magento, having trained hundreds of developers directly as well as thousands of others through the Magento U Fundamentals series. He's always excited to meet other developers to talk about and learn from the challenges and successes of building successful commercial sites with PHP.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/neuro159.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/neuro159" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @neuro159</a></p>
</div>
<div class="col s12 m9">
<h3>What's coming in PhpStorm</h3>
<h4>Alexey Gopachenko</h4>
<h5>PhpStorm Team Lead, JetBrains</h5>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 indigo lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/mikko_lammi_upcloud.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/MikkoLmmz" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @MikkoLmmz</a></p>
</div>
<div class="col s12 m9">
<h3>Scaling IO-bound application in the cloud</h3>
<h4>Mikko Lammi</h4>
<h5>Upcloud</h5>
<p>In the modern cloud environment CPU and memory are cheap resources which can easily be increased to scale up applications. However the local storage can still be the bottleneck and predictable performance might come with a high price. We will demonstrate some ways on how developers can overcome IO limitations and design applications that will scale horizontally in cloud environment.</p>
<h5>About the speaker</h5>
<p>Mikko wears several hats at UpCloud which includes R&D , development for the last five years with cloud hosting backend automation and operations support. He has more than 15 years of experience with different programming languages/ backend operations while working on other functions such as network administration and telecom systems. His most memorable stint is the time he spent at Finnish military mostly coding with PHP.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 teal lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/derickr.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/derickr" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @derickr</a></p>
</div>
<div class="col s12 m9">
<h4>What's New in Xdebug?</h4>
<h5>Derick Rethans</h5>
<h6>MongoDB / Author of Xdebug</h6>
<p>In this talk I will cover the latest additions to Xdebug. Although it is 15 years old now, many features have been added in the last few months and years. In this talk, I will introduce and explain these new features, and some more notable features added in the last few years.</p>
<h5>About the speaker</h5>
<p>Derick Rethans is a PHP internals expert, author of Xdebug and an OpenStreetMap and mapping enthusiast.</p>
<p>He has contributed in a number of ways to the PHP project, including the Xdebug debugging tool, and various extensions and additions. He's a frequent lecturer at conferences, the author of php|architect's Guide to Date and Time Programming, and the co-author of PHP 5 Power Programming. He is now working at MongoDB, where he works on the PHP and C drivers for MongoDB, and date/time related server features.</p>
<p>In his spare time, he likes to travel, hike, ski and practise photography.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 teal lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/hoa_nguyen.jpg" alt="" class="circle responsive-img">
</div>
<div class="col s12 m9">
<h4>Introduction A PHP port of GraphQL</h4>
<h5>Hoa Nguyen</h5>
<h6>Lockon VietNam</h6>
<p>What is GraphQL? When do we use? Which are the famous libraries to use with PHP?</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 teal lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/jpalala.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/jpalala" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @jpalala</a></p>
</div>
<div class="col s12 m9">
<h4>Getting Wordpress OOP by using Corcel</h4>
<h5>Joe Palala</h5>
<p>Working with Wordpress and learning to find out about wordpress hooks and then overriding functions can lead to spaghetti code. I'll share about using a PHP library known as Corcel that will make working with wordpress less of a pain.</p>
<h5>About the speaker</h5>
<p>5 years and more Laravel developer, building the Laravel PH community in the Philippines since 2012.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 teal lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/ypxio.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/ypxio" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ypxio</a></p>
</div>
<div class="col s12 m9">
<h4>Infinity Wars: REST vs GraphQL</h4>
<h5>Yuri Pratama</h5>
<h6>INDUX</h6>
<p>In this talk I will compare pros and cons between REST and GraphQL</p>
<h5>About the speaker</h5>
<p>Yuri Pratama is a frontend engineer at Tourism Marketplace called Tabook Indonesia and UX Community named .INDUX. I interested in pixel, code, and post-rock. He experinced with PHP Programming since 2011</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col s12 offset-m1 m10">
<div class="card-panel z-depth-3 teal lighten-5">
<div class="row">
<div class="col s12 m3">
<img src="/images/speakers/tao_sasaki.jpg" alt="" class="circle responsive-img">
<p class="center-align"><a href="https://twitter.com/tao_s" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @tao_s</a></p>
</div>
<div class="col s12 m9">
<h4>Introduction of most popular eCommerce CMS in Japan</h4>
<h5>Tao Sasaki</h5>
<h6>XROSS CUBE, Inc.</h6>
<h5>About the speaker</h5>
<p> A partner/committer of EC-CUBE. Tokyo User Group Leader. Web Developer. co-founder of concrete5 Japan, Inc.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col s12">
<div class="container">
<div class="row section">
<a name="workshop-day"></a>
<h4 class="center-align">Workshop Day (Sat, 29 September 2018)</h4>
<h5 class="center-align">Location: Rooms T2141, T2142, T2143<br/>Blk T21, Level 4, School of Digital Media and Infocomm Technology (DMIT) Office<br/>Singapore Polytechnic, 500 Dover Road, Singapore 139651</h5>
<div class="col s12 offset-m1 m10 center-align">
<p>These are hands-on workshops. Each workshop is 2.5 hours long.<br> Total of 9 workshops over 3 tracks (in 3 rooms) will be available - topics include PHP, CMS and Frameworks.<br> Attendees can pick and choose which topics to
go for on the workshop day.<br> <em>Lunch and tea breaks will be provided.</em></p>
<p><a href="https://phpconfasia2018.codecraft.com.sg" target="_blank" class="btn-large waves-effect waves-light green lighten-1"><i class="material-icons right">event_seat</i>BUY WORKSHOP TICKETS NOW AT SGD$40.00</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<table>
<thead>
<tr>
<td style="width: 10%">Time</td>
<td style="width: 30%">Track 1</td>
<td style="width: 30%">Track 2</td>
<td style="width: 30%">Track 3</td>
</tr>
</thead>
<tbody>
<tr>
<td><h6>08:30</h6></td>
<td>Registration</td>
<td></td>
<td></td>
</tr>
<tr class="pink lighten-5">
<td><h6>09:00</h6></td>
<td><h6>Introduction to PHP Extensions</h6>
<strong>Derick Rethans</strong></td>
<td><h6>Refactoring Legacy PHP: The Complete Guide</h6>
<strong>Junade Ali</strong></td>
<td>
<h6>Drupal: Zero to Hero in 3 hours</h6>
<strong>SJ</strong></td>
</td>
</tr>