Professional PHP: an open-source alternative for enterprise development [Antwerpen]

Embed Size (px)

Citation preview

Professional PHP

an open-source alternative for enterprise development

Thijs FerynFelix De Vliegher28/11/08, KDG AntwerpenThijs

About us

Thijs Feryn

Support manager & senior developer at COMBELL

PHP developer for about 5 years

Zend PHP5, certified engineer

Contributor to Zend Framework

Felix De Vliegher

Senior developer & sysadmin at COMBELL

PHP developer for about 7 years

Zend PHP5, Zend Framework certified engineer

Co-founder PHPBelgium

Contributor to the PHP project and Zend Framework

Felix en Thijs

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

Thijs

You?

Experience with programming

Experience with PHP

Experience with PHP based applications

OOP in PHP?

Professional experience? (non-academic)

Felix

Open source software

Development methodology

Source code is available

Use, change, improve

Collaborative

Common licenses: GPL, LGPL, MIT

Free as in beer

Felix

The Cathedral and the Bazaar (abbreviated CatB) is an essay by Eric S. Raymond on software engineering methods

LAMP stack

First used in c't magazine in 1998

Linux, Apache, MySQL and PHP

Open-source, free software

Available everywhere

Proven track record

ApplicationPHP

Apache

MySQLLinux

Felix

Why PHP?

Easy to learn

Thijs

Why PHP?

Flexible in webserver environment

Platform independent

Lots of libraries, frameworks

Huge community

Code is freely available

Documentation

Commercial support

Short TTM

Thijs

PHP vs other languages

Dynamically typed

Low entry barrier

Stateless

Platform independence (vs .NET)

Interpreted language

Extensions and libraries

Built-in

Pecl

Pear

(lets say Java?)Felix

PHP is community friendly

Felix

PHP is community friendly

Lots of PHP conferences / PHP UGs

Initiatives to contribute and learn

Active and friendly support:

forums

irc

twitter

Felix

Shiny statistics (sort of)

PHP 4Yahoogoes PHPPHP 5IBM & Oracle endorse PHPMicrosoftendorses PHPPHP 6?

Thijs en Felix

PHP Applications

Thijs

Used by

Felix

COMBELL customers using PHP

Thijs

Support by

Felix

PHP in the enterprise

Evolution from a functional approach to enterprise fundamentals

Thijs

The fundamentals

Felix

Functionality

Language choice based on features

Often the first and only concern

Evolution towards:

Frameworks

Testing & debugging

Thijs

PHP Frameworks

Eases development

More structure

Glue (component) vs full-stack

DRY

No maintenance

Extend or plugin where needed

Thijs en Felix

PHP Frameworks

Zend Framework

Component library and framework

Symfony

Full stack framework

eZ Components

Component library

Loosely coupled

Code Igniter

Fast web application framework

Felix

Security

1: Thou shalt filter input and escape outputFelix

Security

php.ini settings

Areas of importance:

Form processing

Databases

Sessions

Error handling / reporting

Suhoshin / SAPI filter / mod_security

Felix

Performance

Micro optimizations?

No premature optimization!

Caching

Opcode caching

{Page|Database|Module|...} caching

Database

Optimized database design

Indexing strategy

Writing good SQL

Felix

Performance

Profiling: optimizing code

Optimalization of PHP as a language

Felix

Scalability

Shared nothing: independent and self-sufficient

Design patterns - MVC

Database scaling - sharding

Development methodologies - agile, scrum

Version control

Documentation!

Thijs

Testing

I pity the fool who doesnt write tests!Felix

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

Felix

Testing and coverage

Felix

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.seleniumhq.org

Thijs

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

Thijs (en Felix over ZFCE)

PHPBelgium user group

Point of information for PHP

For developers, education, businesses

Bi-monthly meetings (http://www.phpbelgium.be )

Organizing PHP-related eventsPHP TestFest (http://qa.php.net)

PHP Bug Hunt Day (http://www.bughuntday.org)

Felix

Learn more about PHP

Books:

All of php|architect

Power PHP 5 programming

Advanced PHP Programming

Magazines:php|architect magazine

Thijs

Learn more about PHP

Websites:

http://www.phpdeveloper.orghttp://devzone.zend.comhttp://planet-php.orgIRC (irc.freenode.net):

#phpc, ##php, #php_bnl

Training:

PHP|ArchitectIbuildings (http://www.ibuildings.nl)We provide training, too!Felix

Applied at COMBELL

Service oriented architecture

Highly integrated with hosted solutions

Using Zend Framework, Symfony

Development workflow with:

Subversion

Unit testing

Continuous integration (Cruisecontrol)

Thijs

Thijs

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!

Felix

If our presentation were a bookThijs

Thanks!

Any questions?

More info: [email protected]@combellgroup.com

Felix