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