professional php: an open-source alternative for enterprise development [kortrijk]

39
Professional PHP an open-source alternative for enterprise development Thijs Feryn Felix De Vliegher 19/11/’08, Katho Kortrijk

Upload: combell-group

Post on 18-May-2015

8.638 views

Category:

Technology


2 download

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 framework

TRANSCRIPT

Page 1: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Professional PHPan open-source alternative for enterprise development

Thijs FerynFelix De Vliegher

19/11/’08, Katho Kortrijk

Page 2: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

About us• ThijsFeryn

• Supportmanager&seniordeveloperatCOMBELL

• PHPdeveloperforabout5years

• ZendPHP5,cerGfiedengineer

• FelixDeVliegher

• Seniordeveloper&sysadminatCOMBELL

• PHPdeveloperforabout7years

• ZendPHP5,ZendFrameworkcerGfiedengineer

• Co‐founderPHPBelgium

• ContributortothePHPproject

Page 3: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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

Page 4: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

You?

• Experience with programming

• Experience with PHP

• Experience with PHP based applications

• OOP in PHP?

• Professional experience? (read: not katho)

Page 5: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Open source software• Development methodology

• Source code is available

• Use, change, improve

• Collaborative

• Common licenses: GPL, LGPL, MIT

• Free “as in beer”

Page 6: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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

Page 7: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Why PHP?Easy to learn

Page 8: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Why PHP?• Flexible in webserver environment

• Platform independent

• Lots of libraries, frameworks

• Huge community

• Code is freely available

•Documentation

• Commercial support

• Short TTM

Page 9: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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?)

Page 10: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

PHP is community friendly

Page 11: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

PHP is community friendly

• Lots of PHP conferences / PHP UG’s

• Initiatives to contribute and learn

• Active and friendly support:

• forums• irc• twitter

Page 12: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Shiny statistics (sort of)

PHP 4 Yahoogoes PHP PHP 5 IBM & Oracle

endorse PHPMicrosoft

endorses PHP PHP 6?

Page 13: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

PHP Applications

Page 14: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Used by

Page 15: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

COMBELL customers using PHP

Page 16: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Support by

Page 17: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

PHP in the enterpriseEvolution from a functional approach to enterprise fundamentals

Page 18: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

The fundamentals

Page 19: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Functionality

• Language choice based on features

• Often the first and only concern

• Evolution towards:

• Frameworks

• Testing & debugging

Page 20: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

PHP Frameworks

•Eases development

•More structure

•Glue (component) vs full-stack

•DRY

•No maintenance

•Extend or plugin where needed

Page 21: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

PHP Frameworks• Zend Framework

• Component library and framework

• Symfony

• Full stack framework

• eZ Components

• Component library

• Loosely coupled

• Code Igniter

• Fast web application framework

Page 22: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Security1: Thou shalt

filter input and escape output

Page 23: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Security• php.ini settings

• Areas of importance:

• Form processing

• Databases

• Sessions

• Error handling / reporting

• Suhoshin / SAPI filter

Page 24: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Performance• Micro optimizations?

• No premature optimization!

• Caching

• Opcode caching

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

• Database

• Optimized database design

• Indexing strategy

• Writing good SQL

Page 25: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Performance• Profiling: optimizing code

• Optimalization of PHP as a language

Page 26: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Scalability

• Shared nothing: independent and self-sufficient

• Design patterns - MVC

• Database scaling - sharding

• Development methodologies - agile, scrum

• Version control

• Documentation!

Page 27: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Testing

I pity the fool who doesn’t write tests!

Page 28: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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

Page 29: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Testing and coverage

Page 30: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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/

Page 31: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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

Page 32: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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

Page 33: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Learn more about PHP• Books:

• All of php|architect• Power PHP 5 programming• Advanced PHP Programming

Magazines:• php|architect magazine

Page 34: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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)

Page 35: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

Applied at COMBELL• Service oriented architecture

• Highly integrated with hosted solutions

• Using Zend Framework, Symfony

• Development workflow with:

• Subversion

• Unit testing

• Continuous integration (Cruisecontrol)

Page 36: Professional PHP: an open-source alternative for enterprise development [Kortrijk]
Page 37: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

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!

Page 38: Professional PHP: an open-source alternative for enterprise development [Kortrijk]

If our presentation were a book