SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
“PHP in the real world”
          For lack of a less cliche title




                             Ivo Jansch
 De Montfort University, March 26 2009
About me

 CTO at Ibuildings
    Development using PHP (websites, applications)
    ~85 people
    Big projects (high traffic, multi-tier, clusters, high availability, large teams)
    Consultancy (training, audits)
    European focus (from offices in NL and UK)


 Geek!
    Author of several Open Source projects
    Blogger
    Column in php|architect magazine
    Interested in PHP, Web 2.0, Science




                                                                                        2
Contents

 A look at PHP
 PHP Development Lifecycle
 Case Studies
 PHP and Other Technologies
 Open Source
 Open Discussion




                              3
A look at PHP
Past & Present




                 4
Where did PHP come from?




                           5
Welcome to the real world!




                             6
Where are we now?




                    7
History of PHP

                                                                           PHP 5.0
                                                                           •! XML,
                                                                              SOAP,
                                                                              OOP
                                                                           Zend Studio   IBM, Oracle
                                                                                         Endorse PHP
                                                          Yahoo! Standardizes
                          •! 1M Internet domains               on PHP
                          •! Zend Engine
                          •! Zend Founded
                                                                                                                  20M


                                                                                                                  15M
                                               PHP 4
                                              Released
             Zeev Suraski, Andi
               Gutmans lead
  Rasmus       development                                                                                        10M
  Lerdorf        of PHP 3
Introduces
   PHP/FI
                                                                                                       PHP         5M
                                                                                                       Internet Domains


 1995             1997            1999             2000         2002            2004          2005               2006




                                                                                                                      8
Why use PHP?

 Used by more than 25 million domains
 Made for the web
 Open Source
 Documentation
 Platform independent (Linux, Windows, Unix, …)
 Backed by Zend, Microsoft, IBM etc.
 Easy to learn
 Versatile
 Short time-to-market




                                                  9
PHP is everywhere




                    10
PHP’s Quest



              Enterprise




                    SME




                           SOHO




                                  11
PHP is everywhere

Top 10 internet sites in March 2009:

1. Google
2. Facebook
3. Windows Live
4. Yahoo
5. YouTube
6. BBC
7. Ebay
8. MSN
9. Wikipedia
10. Bebo

Source: Alexa.com

                                       12
PHP is everywhere

Top 10 internet sites in March 2009:

1. Google           Python/C
2. Facebook         PHP
3. Windows Live     .NET
4. Yahoo            PHP
5. YouTube          Python
6. BBC              Java/PHP
7. Ebay             Java/PHP
8. MSN              .NET
9. Wikipedia        PHP
10. Bebo            Java



                                       13
Common PHP misconceptions

 “PHP is for hobbyists”
   Low learning curve
   Proper software engineering => proper quality



 “PHP is insecure”
   PHP is a language; it’s the programmer that implements security



 “PHP is not a real language”
   It’s a dynamic scripting language; but a powerful one




                                                                     14
PHP Development Life Cycle
(or at least, the Ibuildings version)




                                        15
Cowboy Coding




                16
PHP Software Lifecycle



                            Deployment & Hosting

  Quality Assurance
                                                   Support &
                                                   Change Management


                           Development Process


Project
Delivery




                      Analyses & Consultancy




                                                                   17
Project Delivery Practices

 Iterative development Process
    Based on fixed time and resources
    Flexible scoping (functionality) & quality

 Project start phase
    Project planning (releases/iterations/tasks)
    Optional discovery & consultancy phase
    Analysis & overall software design (Architecture)
    Building custom development environment

 Steps for each iteration
    Meeting to define iteration scope (in stories)
    Estimate development effort
    Development
    Meeting with presentation of deliverables




                                                        18
Flexible Scoping
     Time              Cost                                 Functionality
                                      FLEXIBLE




                                        FIXED
          Functionality                                Time              Cost

•! 100% of requirements are delivered           •! All business-critical requirements are
(even the unimportant ones)                     delivered on time and within budget.
•! Less or no flexibility in changing the       •! Worst-case: Some non-critical
requirements or priorities after                requirements are not delivered.
developments starts.                            •! Based on fixed delivery dates and thus
•! Projects are delivered too late in many      fixed costs.
cases.                                          •! All of the budget is spend on that what
•! Budget spending is difficult to manage.      is most important for your business.

  “You know exactly what you                         “You know you’ll get all
  get, but just not when or at                      business critical parts on
          what cost.”                               time and within budget.”


                                                                                             19
Iterative Development
                                        Releases
                    1               2                   3                   4
                                                                                   Measured in fixed
                                                                                    months (2 to 3
                                                                                       months)
                         Iterations

                1              2                         3
                                                                                     Measured in fixed
                                                                                      weeks (avg 3
                                                                                         weeks)
  Measured in
estimated hours
(1 to 16 hours)
                                                Stories


  Stories are
   business             Create an article lookup form in which the user can lookup an article by
 focused and            number, name of prior orders. The form displays results dynamically as
    simple              the user is entering arguments.




                                                                                                       20
The first step




                 21
The first step




                 Think!
                          21
Architecture

 Software selection (frameworks, packages)
 Non functional requirements!
 Think ahead
 Beware of over engineering (YAGNI)




                                             22
Quality Assurance

 QA process integral part of iterative development process
    Flexible quality target levels
        Based on actual quality requirements of clients

    ‘Test first’ principle applied (Test Driven Development)
    Software documentation
    Bug tracking & knowledge base system
    Debugging and profiling tools


 Testing method & practices
    Automated testing (Unit testing and Web testing)
    Manual testing
    User Interface testing
    Client environment testing (Browsers and Operating Systems)




                                                                  23
A word on Frameworks

 Why use a framework?
   Don’t reinvent the wheel
   Good programmers are lazy
   Even quicker time to market
   Provides structure
   Proven concepts




                                 24
Frameworks

 Zend Framework
   http://framework.zend.com

   Component framework

   “Use at will architecture”



 Symfony
   http://symfony-project.org

   Full Stack framework

   Doesn’t reinvent the wheel



 ATK
   http://www.atk-framework.com

   Backend framework

   Code minimization



                                  25
Teamwork




           26
Teamwork

Important:
 Standardization of processes




                                26
Teamwork

Important:
 Standardization of processes
 Source Control (SVN)




                                26
Teamwork

Important:
 Standardization of processes
 Source Control (SVN)
 Documentation




                                26
Teamwork

Important:
 Standardization of processes
 Source Control (SVN)
 Documentation
 Communication




                                26
Teamwork

Important:
 Standardization of processes
 Source Control (SVN)
 Documentation
 Communication
 Communication




                                26
Teamwork

Important:
 Standardization of processes
 Source Control (SVN)
 Documentation
 Communication
 Communication
 Communication
 Communication
 Communication
 Communication



                                26
Case Studies
A few example PHP projects




                             27
Common Challenges

 Performance & Scalability
 Security
 Maintainability
 Time to Market




                             28
PHP and other technologies
There’s still hope for Java




                              29
Legacy applications


                                           Case: Amsterdam RAI
                                                 System-i/AS400
                                              legacy application




                     Web application


      Adapter Service              Adapter Service

        Legacy app                     Legacy app




                                                                   30
‘Caffeinated PHP’

  The Negatives
    PHP does not always have all of the functionality needed
    Java development/implementation is more difficult than many situations require

  The Positives
    PHP will do most of what you need to do, easier.
    Java can fill almost any feature void in PHP for a web-based deployment




 Source: Kevin Schroeder (Zend)

                                                                                     31
Open Source
A bit of background information




                                  32
Open Source in a nutshell

 Access to Source Code
 Freedom to change
 Freedom to distribute
 Freedom to use




 Open Source Definition – www.opensource.org




 Speech versus Beer




                                               33
Well-known examples




                      34
Open Source in the Industry




                              35
History

 < 1980     Software was always open
 80s, 90s   Rise of commercial software, EULAs
 1985       FSF founded by Richard Stallman
 1991       Linus Torvalds’ first version of Linux
 1997       Eric Raymond’s “The Cathedral & The Bazaar”
 1998       Term ‘Open Source’ coined
            Netscape / Mozilla release
            OSI founded
 1999       Red Hat goes IPO
 2000-now   Adoption by industry




                                                          36
Business Models
 Knowledge model
    Support
    Training
    Bespoke development



 Licence model
    Commercial license
    Dual licensing



 Indirect model
    Projects, implementation
    Lead generator for other products
    Marketing instrument



                                        37
Takeaways
If you were sleeping, just remember this




                                           38
Takeaways

 Ibuildings is cool
 PHP is a serious language
 PHP is used in big, real world projects
 It’s important to have a good life cycle for PHP projects
 PHP can be used in conjunction with other technologies




                                                             39
Shameless Plug

 php|architect's Guide to Enterprise PHP Development


 ISBN: 978-0-9738621-8-8


 Order at phparch.com or amazon.co.uk




                                                       40
Questions ?




              41
Thank you!
                                      Contact details:
                       http://www.ibuildings.com
                            http://www.jansch.nl
                              ivo@ibuildings.com


Photos and logos (c) by their owners (taken from Google Images)

Weitere ähnliche Inhalte

Andere mochten auch

Implementing The Open/Closed Principle
Implementing The Open/Closed PrincipleImplementing The Open/Closed Principle
Implementing The Open/Closed PrincipleSam Hennessy
 
PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)Ivo Jansch
 
PHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM iPHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM iSam Hennessy
 
Adding Dependency Injection to Legacy Applications
Adding Dependency Injection to Legacy ApplicationsAdding Dependency Injection to Legacy Applications
Adding Dependency Injection to Legacy ApplicationsSam Hennessy
 
Task Scheduling and Asynchronous Processing Evolved. Zend Server Job Queue
Task Scheduling and Asynchronous Processing Evolved. Zend Server Job QueueTask Scheduling and Asynchronous Processing Evolved. Zend Server Job Queue
Task Scheduling and Asynchronous Processing Evolved. Zend Server Job QueueSam Hennessy
 
Single Responsibility Principle
Single Responsibility PrincipleSingle Responsibility Principle
Single Responsibility PrincipleEyal Golan
 
University management software
University management softwareUniversity management software
University management softwarevinodhini1
 
University Management System
University Management SystemUniversity Management System
University Management SystemNurul Amin Muhit
 
University management system UMS
University management system UMSUniversity management system UMS
University management system UMSMayank Jain
 
University Management Information System
University Management Information SystemUniversity Management Information System
University Management Information SystemAbzetdin Adamov
 
University Management System
University Management SystemUniversity Management System
University Management SystemChanHan Hy
 
Vbase Google
Vbase GoogleVbase Google
Vbase Googlehavs
 
There Is Always A Better Deal
There Is Always A Better DealThere Is Always A Better Deal
There Is Always A Better DealMartin Finn
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Ivo Jansch
 
PHP and the Cloud
PHP and the CloudPHP and the Cloud
PHP and the CloudIvo Jansch
 
How to write a great digital strategy
How to write a great digital strategyHow to write a great digital strategy
How to write a great digital strategysimonwakeman
 
J2Me Il Micro Mondo Java
J2Me Il Micro Mondo JavaJ2Me Il Micro Mondo Java
J2Me Il Micro Mondo JavaAntonio Terreno
 
Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介easychen
 

Andere mochten auch (20)

Implementing The Open/Closed Principle
Implementing The Open/Closed PrincipleImplementing The Open/Closed Principle
Implementing The Open/Closed Principle
 
PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)
 
PHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM iPHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM i
 
Adding Dependency Injection to Legacy Applications
Adding Dependency Injection to Legacy ApplicationsAdding Dependency Injection to Legacy Applications
Adding Dependency Injection to Legacy Applications
 
Task Scheduling and Asynchronous Processing Evolved. Zend Server Job Queue
Task Scheduling and Asynchronous Processing Evolved. Zend Server Job QueueTask Scheduling and Asynchronous Processing Evolved. Zend Server Job Queue
Task Scheduling and Asynchronous Processing Evolved. Zend Server Job Queue
 
Single Responsibility Principle
Single Responsibility PrincipleSingle Responsibility Principle
Single Responsibility Principle
 
University management software
University management softwareUniversity management software
University management software
 
University Management System
University Management SystemUniversity Management System
University Management System
 
BIT-UCSC Final Project
BIT-UCSC Final ProjectBIT-UCSC Final Project
BIT-UCSC Final Project
 
University management system UMS
University management system UMSUniversity management system UMS
University management system UMS
 
University Management Information System
University Management Information SystemUniversity Management Information System
University Management Information System
 
University Management System
University Management SystemUniversity Management System
University Management System
 
Vbase Google
Vbase GoogleVbase Google
Vbase Google
 
There Is Always A Better Deal
There Is Always A Better DealThere Is Always A Better Deal
There Is Always A Better Deal
 
Stop To Think
Stop To ThinkStop To Think
Stop To Think
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
 
PHP and the Cloud
PHP and the CloudPHP and the Cloud
PHP and the Cloud
 
How to write a great digital strategy
How to write a great digital strategyHow to write a great digital strategy
How to write a great digital strategy
 
J2Me Il Micro Mondo Java
J2Me Il Micro Mondo JavaJ2Me Il Micro Mondo Java
J2Me Il Micro Mondo Java
 
Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介
 

Ähnlich wie PHP in the Real World

Webfest 2011 PHP on Windows by Rama Yurindra
Webfest 2011 PHP on Windows by Rama YurindraWebfest 2011 PHP on Windows by Rama Yurindra
Webfest 2011 PHP on Windows by Rama YurindraSpiffy
 
Business value of PHP
Business value of PHPBusiness value of PHP
Business value of PHPCOMMON Europe
 
Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...
Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...
Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...ZendCon
 
Debugging with Zend Studio for Eclipse
Debugging with Zend Studio for EclipseDebugging with Zend Studio for Eclipse
Debugging with Zend Studio for EclipseOSSCube
 
Integrating PHP With System-i using Web Services
Integrating PHP With System-i using Web ServicesIntegrating PHP With System-i using Web Services
Integrating PHP With System-i using Web ServicesIvo Jansch
 
Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9PrinceGuru MS
 
Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Combell NV
 
Trends in the software industry
Trends in the software industryTrends in the software industry
Trends in the software industryLi SUN
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Ivo Jansch
 
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails courseDIVE INTO CODE Corp.
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHPEric Johnson
 
Hippo Presentation Jboye Study tour 2012
Hippo Presentation Jboye Study tour 2012Hippo Presentation Jboye Study tour 2012
Hippo Presentation Jboye Study tour 2012Hippo
 
State Of PHP - Zeev Suraski
State Of PHP - Zeev SuraskiState Of PHP - Zeev Suraski
State Of PHP - Zeev Suraskidpc
 
Uvod u php - Danilo Purić i Tarik Zaimović
Uvod u php - Danilo Purić i Tarik ZaimovićUvod u php - Danilo Purić i Tarik Zaimović
Uvod u php - Danilo Purić i Tarik ZaimovićBild_Studio
 
Top 8 Powerful Tools Developers Use for Laravel Web Development.pdf
Top 8 Powerful Tools Developers Use for Laravel Web Development.pdfTop 8 Powerful Tools Developers Use for Laravel Web Development.pdf
Top 8 Powerful Tools Developers Use for Laravel Web Development.pdfMoonTechnolabsPvtLtd
 
Top 5 PHP Frameworks for MNCs and Startups (1).pdf
Top 5  PHP Frameworks for MNCs and Startups  (1).pdfTop 5  PHP Frameworks for MNCs and Startups  (1).pdf
Top 5 PHP Frameworks for MNCs and Startups (1).pdfSeasia Infotech
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007Mike Feltman
 

Ähnlich wie PHP in the Real World (20)

Webfest 2011 PHP on Windows by Rama Yurindra
Webfest 2011 PHP on Windows by Rama YurindraWebfest 2011 PHP on Windows by Rama Yurindra
Webfest 2011 PHP on Windows by Rama Yurindra
 
Business value of PHP
Business value of PHPBusiness value of PHP
Business value of PHP
 
Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...
Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...
Insights from the Experts: How PHP Leaders Are Transforming High-Impact PHP A...
 
Debugging with Zend Studio for Eclipse
Debugging with Zend Studio for EclipseDebugging with Zend Studio for Eclipse
Debugging with Zend Studio for Eclipse
 
Integrating PHP With System-i using Web Services
Integrating PHP With System-i using Web ServicesIntegrating PHP With System-i using Web Services
Integrating PHP With System-i using Web Services
 
Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9
 
Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...
 
Trends in the software industry
Trends in the software industryTrends in the software industry
Trends in the software industry
 
A Tale of Two Toolkits
A Tale of Two ToolkitsA Tale of Two Toolkits
A Tale of Two Toolkits
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)
 
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
 
Hippo Presentation Jboye Study tour 2012
Hippo Presentation Jboye Study tour 2012Hippo Presentation Jboye Study tour 2012
Hippo Presentation Jboye Study tour 2012
 
State Of PHP - Zeev Suraski
State Of PHP - Zeev SuraskiState Of PHP - Zeev Suraski
State Of PHP - Zeev Suraski
 
Uvod u php - Danilo Purić i Tarik Zaimović
Uvod u php - Danilo Purić i Tarik ZaimovićUvod u php - Danilo Purić i Tarik Zaimović
Uvod u php - Danilo Purić i Tarik Zaimović
 
Presentation php
Presentation phpPresentation php
Presentation php
 
Hippo Presentation Jboye Study tour
Hippo Presentation Jboye Study tourHippo Presentation Jboye Study tour
Hippo Presentation Jboye Study tour
 
Top 8 Powerful Tools Developers Use for Laravel Web Development.pdf
Top 8 Powerful Tools Developers Use for Laravel Web Development.pdfTop 8 Powerful Tools Developers Use for Laravel Web Development.pdf
Top 8 Powerful Tools Developers Use for Laravel Web Development.pdf
 
Top 5 PHP Frameworks for MNCs and Startups (1).pdf
Top 5  PHP Frameworks for MNCs and Startups  (1).pdfTop 5  PHP Frameworks for MNCs and Startups  (1).pdf
Top 5 PHP Frameworks for MNCs and Startups (1).pdf
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007
 

Mehr von Ivo Jansch

Own Your Apps
Own Your Apps Own Your Apps
Own Your Apps Ivo Jansch
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developersIvo Jansch
 
Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)Ivo Jansch
 
The Business Case For Telecommuting
The Business Case For TelecommutingThe Business Case For Telecommuting
The Business Case For TelecommutingIvo Jansch
 
Php Development In The Cloud
Php Development In The CloudPhp Development In The Cloud
Php Development In The CloudIvo Jansch
 
PHP in a mobile ecosystem
PHP in a mobile ecosystem PHP in a mobile ecosystem
PHP in a mobile ecosystem Ivo Jansch
 
27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)Ivo Jansch
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Ivo Jansch
 
PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)Ivo Jansch
 
PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)Ivo Jansch
 
Content Management Selection and Strategy
Content Management Selection and StrategyContent Management Selection and Strategy
Content Management Selection and StrategyIvo Jansch
 
Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008Ivo Jansch
 
Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)Ivo Jansch
 
Hello Enterprise, my name is PHP
Hello Enterprise, my name is PHPHello Enterprise, my name is PHP
Hello Enterprise, my name is PHPIvo Jansch
 
Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)Ivo Jansch
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Ivo Jansch
 
Maatwerk Software
Maatwerk SoftwareMaatwerk Software
Maatwerk SoftwareIvo Jansch
 
Introductie Web 2.0
Introductie Web 2.0Introductie Web 2.0
Introductie Web 2.0Ivo Jansch
 
Migrating from PHP4 To PHP5 - Zend Webinar
Migrating from PHP4 To PHP5 - Zend WebinarMigrating from PHP4 To PHP5 - Zend Webinar
Migrating from PHP4 To PHP5 - Zend WebinarIvo Jansch
 
Wat is Open Source?
Wat is Open Source?Wat is Open Source?
Wat is Open Source?Ivo Jansch
 

Mehr von Ivo Jansch (20)

Own Your Apps
Own Your Apps Own Your Apps
Own Your Apps
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developers
 
Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)
 
The Business Case For Telecommuting
The Business Case For TelecommutingThe Business Case For Telecommuting
The Business Case For Telecommuting
 
Php Development In The Cloud
Php Development In The CloudPhp Development In The Cloud
Php Development In The Cloud
 
PHP in a mobile ecosystem
PHP in a mobile ecosystem PHP in a mobile ecosystem
PHP in a mobile ecosystem
 
27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)
 
PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)
 
PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)
 
Content Management Selection and Strategy
Content Management Selection and StrategyContent Management Selection and Strategy
Content Management Selection and Strategy
 
Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008
 
Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)
 
Hello Enterprise, my name is PHP
Hello Enterprise, my name is PHPHello Enterprise, my name is PHP
Hello Enterprise, my name is PHP
 
Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Maatwerk Software
Maatwerk SoftwareMaatwerk Software
Maatwerk Software
 
Introductie Web 2.0
Introductie Web 2.0Introductie Web 2.0
Introductie Web 2.0
 
Migrating from PHP4 To PHP5 - Zend Webinar
Migrating from PHP4 To PHP5 - Zend WebinarMigrating from PHP4 To PHP5 - Zend Webinar
Migrating from PHP4 To PHP5 - Zend Webinar
 
Wat is Open Source?
Wat is Open Source?Wat is Open Source?
Wat is Open Source?
 

Kürzlich hochgeladen

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Kürzlich hochgeladen (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

PHP in the Real World

  • 1. “PHP in the real world” For lack of a less cliche title Ivo Jansch De Montfort University, March 26 2009
  • 2. About me CTO at Ibuildings Development using PHP (websites, applications) ~85 people Big projects (high traffic, multi-tier, clusters, high availability, large teams) Consultancy (training, audits) European focus (from offices in NL and UK) Geek! Author of several Open Source projects Blogger Column in php|architect magazine Interested in PHP, Web 2.0, Science 2
  • 3. Contents A look at PHP PHP Development Lifecycle Case Studies PHP and Other Technologies Open Source Open Discussion 3
  • 4. A look at PHP Past & Present 4
  • 5. Where did PHP come from? 5
  • 6. Welcome to the real world! 6
  • 7. Where are we now? 7
  • 8. History of PHP PHP 5.0 •! XML, SOAP, OOP Zend Studio IBM, Oracle Endorse PHP Yahoo! Standardizes •! 1M Internet domains on PHP •! Zend Engine •! Zend Founded 20M 15M PHP 4 Released Zeev Suraski, Andi Gutmans lead Rasmus development 10M Lerdorf of PHP 3 Introduces PHP/FI PHP 5M Internet Domains 1995 1997 1999 2000 2002 2004 2005 2006 8
  • 9. Why use PHP? Used by more than 25 million domains Made for the web Open Source Documentation Platform independent (Linux, Windows, Unix, …) Backed by Zend, Microsoft, IBM etc. Easy to learn Versatile Short time-to-market 9
  • 11. PHP’s Quest Enterprise SME SOHO 11
  • 12. PHP is everywhere Top 10 internet sites in March 2009: 1. Google 2. Facebook 3. Windows Live 4. Yahoo 5. YouTube 6. BBC 7. Ebay 8. MSN 9. Wikipedia 10. Bebo Source: Alexa.com 12
  • 13. PHP is everywhere Top 10 internet sites in March 2009: 1. Google Python/C 2. Facebook PHP 3. Windows Live .NET 4. Yahoo PHP 5. YouTube Python 6. BBC Java/PHP 7. Ebay Java/PHP 8. MSN .NET 9. Wikipedia PHP 10. Bebo Java 13
  • 14. Common PHP misconceptions “PHP is for hobbyists” Low learning curve Proper software engineering => proper quality “PHP is insecure” PHP is a language; it’s the programmer that implements security “PHP is not a real language” It’s a dynamic scripting language; but a powerful one 14
  • 15. PHP Development Life Cycle (or at least, the Ibuildings version) 15
  • 17. PHP Software Lifecycle Deployment & Hosting Quality Assurance Support & Change Management Development Process Project Delivery Analyses & Consultancy 17
  • 18. Project Delivery Practices Iterative development Process Based on fixed time and resources Flexible scoping (functionality) & quality Project start phase Project planning (releases/iterations/tasks) Optional discovery & consultancy phase Analysis & overall software design (Architecture) Building custom development environment Steps for each iteration Meeting to define iteration scope (in stories) Estimate development effort Development Meeting with presentation of deliverables 18
  • 19. Flexible Scoping Time Cost Functionality FLEXIBLE FIXED Functionality Time Cost •! 100% of requirements are delivered •! All business-critical requirements are (even the unimportant ones) delivered on time and within budget. •! Less or no flexibility in changing the •! Worst-case: Some non-critical requirements or priorities after requirements are not delivered. developments starts. •! Based on fixed delivery dates and thus •! Projects are delivered too late in many fixed costs. cases. •! All of the budget is spend on that what •! Budget spending is difficult to manage. is most important for your business. “You know exactly what you “You know you’ll get all get, but just not when or at business critical parts on what cost.” time and within budget.” 19
  • 20. Iterative Development Releases 1 2 3 4 Measured in fixed months (2 to 3 months) Iterations 1 2 3 Measured in fixed weeks (avg 3 weeks) Measured in estimated hours (1 to 16 hours) Stories Stories are business Create an article lookup form in which the user can lookup an article by focused and number, name of prior orders. The form displays results dynamically as simple the user is entering arguments. 20
  • 22. The first step Think! 21
  • 23. Architecture Software selection (frameworks, packages) Non functional requirements! Think ahead Beware of over engineering (YAGNI) 22
  • 24. Quality Assurance QA process integral part of iterative development process Flexible quality target levels Based on actual quality requirements of clients ‘Test first’ principle applied (Test Driven Development) Software documentation Bug tracking & knowledge base system Debugging and profiling tools Testing method & practices Automated testing (Unit testing and Web testing) Manual testing User Interface testing Client environment testing (Browsers and Operating Systems) 23
  • 25. A word on Frameworks Why use a framework? Don’t reinvent the wheel Good programmers are lazy Even quicker time to market Provides structure Proven concepts 24
  • 26. Frameworks Zend Framework http://framework.zend.com Component framework “Use at will architecture” Symfony http://symfony-project.org Full Stack framework Doesn’t reinvent the wheel ATK http://www.atk-framework.com Backend framework Code minimization 25
  • 27. Teamwork 26
  • 29. Teamwork Important: Standardization of processes Source Control (SVN) 26
  • 30. Teamwork Important: Standardization of processes Source Control (SVN) Documentation 26
  • 31. Teamwork Important: Standardization of processes Source Control (SVN) Documentation Communication 26
  • 32. Teamwork Important: Standardization of processes Source Control (SVN) Documentation Communication Communication 26
  • 33. Teamwork Important: Standardization of processes Source Control (SVN) Documentation Communication Communication Communication Communication Communication Communication 26
  • 34. Case Studies A few example PHP projects 27
  • 35. Common Challenges Performance & Scalability Security Maintainability Time to Market 28
  • 36. PHP and other technologies There’s still hope for Java 29
  • 37. Legacy applications Case: Amsterdam RAI System-i/AS400 legacy application Web application Adapter Service Adapter Service Legacy app Legacy app 30
  • 38. ‘Caffeinated PHP’ The Negatives PHP does not always have all of the functionality needed Java development/implementation is more difficult than many situations require The Positives PHP will do most of what you need to do, easier. Java can fill almost any feature void in PHP for a web-based deployment Source: Kevin Schroeder (Zend) 31
  • 39. Open Source A bit of background information 32
  • 40. Open Source in a nutshell Access to Source Code Freedom to change Freedom to distribute Freedom to use Open Source Definition – www.opensource.org Speech versus Beer 33
  • 42. Open Source in the Industry 35
  • 43. History < 1980 Software was always open 80s, 90s Rise of commercial software, EULAs 1985 FSF founded by Richard Stallman 1991 Linus Torvalds’ first version of Linux 1997 Eric Raymond’s “The Cathedral & The Bazaar” 1998 Term ‘Open Source’ coined Netscape / Mozilla release OSI founded 1999 Red Hat goes IPO 2000-now Adoption by industry 36
  • 44. Business Models Knowledge model Support Training Bespoke development Licence model Commercial license Dual licensing Indirect model Projects, implementation Lead generator for other products Marketing instrument 37
  • 45. Takeaways If you were sleeping, just remember this 38
  • 46. Takeaways Ibuildings is cool PHP is a serious language PHP is used in big, real world projects It’s important to have a good life cycle for PHP projects PHP can be used in conjunction with other technologies 39
  • 47. Shameless Plug php|architect's Guide to Enterprise PHP Development ISBN: 978-0-9738621-8-8 Order at phparch.com or amazon.co.uk 40
  • 49. Thank you! Contact details: http://www.ibuildings.com http://www.jansch.nl ivo@ibuildings.com Photos and logos (c) by their owners (taken from Google Images)