Slide 1

Slide 1 text

Artesis Plantijn Hogeschool Antwerpen Professional PHP

Slide 2

Slide 2 text

Who am I? Michelangelo van Dam Professional PHP Consultant [email protected] twitter.com/DragonBe facebook.com/DragonBe gplus.to/DragonBe dragonbe.com

Slide 3

Slide 3 text

Who are you?

Slide 4

Slide 4 text

Let’s talk PHP

Slide 5

Slide 5 text

Rasmus Lerdorf Created PHP in 1995 Called “Personal Home Page”

Slide 6

Slide 6 text

PHP & Open Source World wide community Best support ever! (IRC, mailing lists, forums, blogs, twitter, …) Source code available to learn, to modify, to fix Powers over 60% of the internet Free!!!

Slide 7

Slide 7 text

PHP = Sexy

Slide 8

Slide 8 text

History Web sites Online shops Build “Quick Time To Market” Considered a toy

Slide 9

Slide 9 text

Present Rich web applications Mobile API’s Interoperability Build to last Considered “Major technology”

Slide 10

Slide 10 text

Future Mobile Applications Data interchange Enriched media …

Slide 11

Slide 11 text

PHP Key features Build for the web Glue & interoperability (Java, .NET, …) Open Source (free, customizable, …) Multi-platform support

Slide 12

Slide 12 text

Industries automation communication e-commerce energy financial food entertainment government health care non-profit transportation travel & holidays

Slide 13

Slide 13 text

PHP in daily life

Slide 14

Slide 14 text

PHP Supported by

Slide 15

Slide 15 text

Why PHP?

Slide 16

Slide 16 text

Why invest in PHP? Easy to learn Runs on Windows, Mac OS and Linux No compiling of code Easy to debug Quick time to market

Slide 17

Slide 17 text

Example: a blog Set up your database Install Wordpress on your server Choose a ready-made theme Write first blog article 15 minutes

Slide 18

Slide 18 text

Easy Moneytizing set up a blog around a viral meme put ads on it host it on a catchy domain e.g. funnyharlemshake.com earn ad revenue

Slide 19

Slide 19 text

FunnyHarlemShake

Slide 20

Slide 20 text

Lasting success start writing interesting articles a single topic (tech, life, …) become known as expert write more and get traction

Slide 21

Slide 21 text

Scoblizer

Slide 22

Slide 22 text

But this is not programming!

Slide 23

Slide 23 text

Building web apps Pick a framework Set up database Start coding

Slide 24

Slide 24 text

PHP is not alone HTML & CSS JavaScript HTTP (RFC-2616) SQL JSON, XML, CSV, …

Slide 25

Slide 25 text

PHP + HTML + CSS

Slide 26

Slide 26 text

Frameworks

Slide 27

Slide 27 text

Framework features ease of development structural architecture loosly coupled <> full stack DRY (don’t repeat yourself) NIH (not invented here) maintenance friendly extendable, modular and feature rich

Slide 28

Slide 28 text

PHP Frameworks

Slide 29

Slide 29 text

CMS Frameworks

Slide 30

Slide 30 text

E-commerce Frameworks

Slide 31

Slide 31 text

ERP/CRM Frameworks

Slide 32

Slide 32 text

Other Frameworks

Slide 33

Slide 33 text

Security

Slide 34

Slide 34 text

In the news

Slide 35

Slide 35 text

Protection Cross Site Scripting (XSS) SQL Injections Buffer Overflow Exploits Session Hijacking Human Error

Slide 36

Slide 36 text

http://xkcd.com/327/ Little Bobby Tables

Slide 37

Slide 37 text

Filter Input Escape Output

Slide 38

Slide 38 text

Basic Prevention Filtering and validating input Logging and monitoring behaviour Tokenize forms Expect all data to be tainted Don’t use globals

Slide 39

Slide 39 text

DATA IS TAINTED!

Slide 40

Slide 40 text

All DATA!

Slide 41

Slide 41 text

Performance

Slide 42

Slide 42 text

Boosting PHP apps scaling of PHP applications optimization of code using callback vs. foreach loop db optimization vs. normalization caching (code, components, pages, db, …) PHP Hip Hop

Slide 43

Slide 43 text

Web servers in load- balanced setup Back-end gets called only a few times Proxies block 90% of the web requests Internet

Slide 44

Slide 44 text

One billion monthly active users as of October 2012. Approximately 81% of our monthly active users are outside the U.S. and Canada. 584 million daily active users on average in September 2012. 604 million monthly active users who used Facebook mobile products as of September 30, 2012. Source: http:/ /newsroom.fb.com/Key-Facts

Slide 45

Slide 45 text

Higher Quality

Slide 46

Slide 46 text

Improving Quality Design Patterns Coding Standards Development Methodologies Version Control (SVN, Git, …) Documentation Unit Tests

Slide 47

Slide 47 text

Design Patterns A solution to common coding challenges Tried and tested solutions Specific “lingo” for developers Increase of readability of code

Slide 48

Slide 48 text

Coding Standards Increase readability of source code Consistent code usage for all developers Easier detection of flaws and security holes A must for corporate/enterprise developers

Slide 49

Slide 49 text

Dev Methodologies Agile - Scrum

Slide 50

Slide 50 text

Version Control Keeps track of development progress Merges changes on same codebase Multiple versions co-exists in the repository Enables release management Revert back to previous versions Backup of code base

Slide 51

Slide 51 text

Documentation For developers New team members Reference during development For end-users Usage guides

Slide 52

Slide 52 text

Testing Detects failures before they become an issue More tests is less debugging Increases quality Easier for refactoring and modifications Results in confident developers

Slide 53

Slide 53 text

Get Certified!

Slide 54

Slide 54 text

Certification bonus Become a professional Advance when searching for a job Get listed in Zend Yellow Pages Confirmation of skills

Slide 55

Slide 55 text

Career in PHP? NOW is the time!!! More jobs then available developers All industries Good salary and benefits Paid training, conference tickets and more

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

PHP Job market

Slide 59

Slide 59 text

Search for experts Everyone is searching for experts But they are hard to find

Slide 60

Slide 60 text

Make it as a junior Participate in open-source projects List ALL skills development, graphical, editorial math, science or other specialties List all tools you use List all interests and hobbies

Slide 61

Slide 61 text

Internship Get experience hands-on Often path to permanent contract Learn from experienced collegues

Slide 62

Slide 62 text

Summer job Limited time to experience But valuable for career experience Absorb as much as possible

Slide 63

Slide 63 text

When applying Custom CV or resume per position Emphasize required skills List non-required skills Always display public achievements

Slide 64

Slide 64 text

GitHub

Slide 65

Slide 65 text

Blog

Slide 66

Slide 66 text

Attribution Gwen Yudhira Account Manager Harvey Nash IT Consulting

Slide 67

Slide 67 text

PHP Community

Slide 68

Slide 68 text

Why community A very tight community To share knowledge Connect with other developers Help in times of need

Slide 69

Slide 69 text

PHP BENELUX http:/ /phpbenelux.eu | @phpbenelux

Slide 70

Slide 70 text

PHPBenelux Monthly meetings in Netherlands and Belgium Workshops, community events Annual Conference in Antwerp

Slide 71

Slide 71 text

“We bring PHP to the developers & stimulate knowledge sharing”

Slide 72

Slide 72 text

No content

Slide 73

Slide 73 text

The future

Slide 74

Slide 74 text

Mobile devices

Slide 75

Slide 75 text

Smart TV’s

Slide 76

Slide 76 text

Interactive Cars

Slide 77

Slide 77 text

1 thing in common

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

Plenty of work!

Slide 80

Slide 80 text

Conclusion

Slide 81

Slide 81 text

Summary High performant, scalable apps With increased quality and security Using existing tools & frameworks In a mixed tech environment With a guaranteed future

Slide 82

Slide 82 text

Creative Commons Credits decayed building: http:/ /www.flickr.com/photos/genista/4854012/ new residential: http:/ /www.flickr.com/photos/axiomestates/ 3138432028/ space station: http:/ /www.flickr.com/photos/29239795@N06/5825772547/ high voltage: http:/ /www.flickr.com/photos/ddebold/3919527208/ security: http:/ /www.flickr.com/photos/adulau/7712545428/ Performance: http:/ /www.flickr.com/photos/gowestphoto/3921760653/ quality: http:/ /www.flickr.com/photos/jurvetson/156830367/ phpbnl BBQ: http:/ /www.flickr.com/photos/felixdv/3883257119 teaching: http:/ /www.flickr.com/photos/joshholmes/6774698389/ finish: http:/ /www.flickr.com/photos/stevensnodgrass/3926023483/

Slide 83

Slide 83 text

Contact us PHPBenelux [email protected] www.phpbenelux.eu twitter.com/phpbenelux facebook.com/phpbenelux

Slide 84

Slide 84 text

Slides https:/ /speakerdeck.com/dragonbe/ professional-php

Slide 85

Slide 85 text

Thank you