professional php: an open-source alternative for enterprise development [kortrijk]
DESCRIPTION
A presentation on Enterprise PHP development for people who have no experience with PHP programming. Basically this presentation defends PHP as a worthy technology for enterprise projects and is directly compared with other enterprise technologies such as Java and the .NET frameworkTRANSCRIPT
Professional PHPan open-source alternative for enterprise development
Thijs FerynFelix De Vliegher
19/11/’08, Katho Kortrijk
About us• ThijsFeryn
• Supportmanager&seniordeveloperatCOMBELL
• PHPdeveloperforabout5years
• ZendPHP5,cerGfiedengineer
• FelixDeVliegher
• Seniordeveloper&sysadminatCOMBELL
• PHPdeveloperforabout7years
• ZendPHP5,ZendFrameworkcerGfiedengineer
• Co‐founderPHPBelgium
• ContributortothePHPproject
About COMBELL• Founded in 1999
• 30 FTE and growing
• +25 000 customers
• Premium / Quality hosting segment
• Leading hosting provider in Belgium concerning hosting & domain names in the SME market
• + 60 000 domain names
• + 20 000 websites
• + 600 servers, owned & managed by COMBELL
• + 400 resellers
You?
• Experience with programming
• Experience with PHP
• Experience with PHP based applications
• OOP in PHP?
• Professional experience? (read: not katho)
Open source software• Development methodology
• Source code is available
• Use, change, improve
• Collaborative
• Common licenses: GPL, LGPL, MIT
• Free “as in beer”
LAMP stack
• First used in c't magazine in 1998
• Linux, Apache, MySQL and PHP
• Open-source, free software
• Available everywhere
• Proven track recordApplication
PHPApache MySQL
Linux
Why PHP?Easy to learn
Why PHP?• Flexible in webserver environment
• Platform independent
• Lots of libraries, frameworks
• Huge community
• Code is freely available
•Documentation
• Commercial support
• Short TTM
PHP vs other languages• Dynamically typed
• Low entry barrier
• Stateless
• Platform independence (vs .NET)
• Interpreted language
• Extensions and libraries
• Built-in• Pecl• Pear
(let’s say Java?)
PHP is community friendly
PHP is community friendly
• Lots of PHP conferences / PHP UG’s
• Initiatives to contribute and learn
• Active and friendly support:
• forums• irc• twitter
Shiny statistics (sort of)
PHP 4 Yahoogoes PHP PHP 5 IBM & Oracle
endorse PHPMicrosoft
endorses PHP PHP 6?
PHP Applications
Used by
COMBELL customers using PHP
Support by
PHP in the enterpriseEvolution from a functional approach to enterprise fundamentals
The fundamentals
Functionality
• Language choice based on features
• Often the first and only concern
• Evolution towards:
• Frameworks
• Testing & debugging
PHP Frameworks
•Eases development
•More structure
•Glue (component) vs full-stack
•DRY
•No maintenance
•Extend or plugin where needed
PHP Frameworks• Zend Framework
• Component library and framework
• Symfony
• Full stack framework
• eZ Components
• Component library
• Loosely coupled
• Code Igniter
• Fast web application framework
Security1: Thou shalt
filter input and escape output
Security• php.ini settings
• Areas of importance:
• Form processing
• Databases
• Sessions
• Error handling / reporting
• Suhoshin / SAPI filter
Performance• Micro optimizations?
• No premature optimization!
• Caching
• Opcode caching
• {Page|Database|Module|...} caching
• Database
• Optimized database design
• Indexing strategy
• Writing good SQL
Performance• Profiling: optimizing code
• Optimalization of PHP as a language
Scalability
• Shared nothing: independent and self-sufficient
• Design patterns - MVC
• Database scaling - sharding
• Development methodologies - agile, scrum
• Version control
• Documentation!
Testing
I pity the fool who doesn’t write tests!
Testing
•More testing == less debugging!
•Applications should work as expected
•Actually takes less time
•Provides higher quality
•Easier to refactor and change
•Makes confident developers
Testing and coverage
PHP Tools and utilities• Editors
• Eclipse PDT - http://www.eclipse.org/pdt/
• Zend Studio - http://www.zend.com/studio
• Continuous Integration
• phpUnderControl - http://www.phpunit.de
• Debuggers / Profilers
• Xdebug - http://www.xdebug.org
• Testing tools
• PHPUnit - http://www.phpunit.info
• Selenium - http://selenium-ide.openqa.org/
Certifications• Zend PHP 5 certification
• Zend Framework Certification
• Why:
• Differentiate yourself when looking for a job
• Get listed in Zend Yellow Pages
• Confirmation of a decent PHP skillset
PHPBelgium user group• Point of information for PHP
• For developers, education, businesses
• Bi-monthly meetings (with a drink)
• Organizing PHP-related events
• PHP Bug Hunt Day
http://www.phpbelgium.be | http://bughuntday.org
Learn more about PHP• Books:
• All of php|architect• Power PHP 5 programming• Advanced PHP Programming
Magazines:• php|architect magazine
Learn more about PHP• Websites:
http://www.phpdeveloper.orghttp://devzone.zend.comhttp://planet-php.org
• IRC (irc.freenode.net):#phpc, ##php, #php_bnl
•Training:PHP|ArchitectIbuildings (http://www.ibuildings.nl)
Applied at COMBELL• Service oriented architecture
• Highly integrated with hosted solutions
• Using Zend Framework, Symfony
• Development workflow with:
• Subversion
• Unit testing
• Continuous integration (Cruisecontrol)
Others are hiring too
• PHP is becoming big in enterprises
• Valid career choice, not everything needs to be done with Java or .NET
• PHP Engineers are in high demand!
If our presentation were a book
Thanks!
Any questions?
More info: