Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHP in the Real World


Published on

Guest Lecture I did a few months ago at DeMontfort University in Leicester.

Published in: Technology
  • Be the first to comment

PHP in the Real World

  1. 1. “PHP in the real world” For lack of a less cliche title Ivo Jansch De Montfort University, March 26 2009
  2. 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. 3. Contents A look at PHP PHP Development Lifecycle Case Studies PHP and Other Technologies Open Source Open Discussion 3
  4. 4. A look at PHP Past & Present 4
  5. 5. Where did PHP come from? 5
  6. 6. Welcome to the real world! 6
  7. 7. Where are we now? 7
  8. 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. 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
  10. 10. PHP is everywhere 10
  11. 11. PHP’s Quest Enterprise SME SOHO 11
  12. 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: 12
  13. 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. 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. 15. PHP Development Life Cycle (or at least, the Ibuildings version) 15
  16. 16. Cowboy Coding 16
  17. 17. PHP Software Lifecycle Deployment & Hosting Quality Assurance Support & Change Management Development Process Project Delivery Analyses & Consultancy 17
  18. 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. 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. 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
  21. 21. The first step 21
  22. 22. The first step Think! 21
  23. 23. Architecture Software selection (frameworks, packages) Non functional requirements! Think ahead Beware of over engineering (YAGNI) 22
  24. 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. 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. 26. Frameworks Zend Framework Component framework “Use at will architecture” Symfony Full Stack framework Doesn’t reinvent the wheel ATK Backend framework Code minimization 25
  27. 27. Teamwork 26
  28. 28. Teamwork Important: Standardization of processes 26
  29. 29. Teamwork Important: Standardization of processes Source Control (SVN) 26
  30. 30. Teamwork Important: Standardization of processes Source Control (SVN) Documentation 26
  31. 31. Teamwork Important: Standardization of processes Source Control (SVN) Documentation Communication 26
  32. 32. Teamwork Important: Standardization of processes Source Control (SVN) Documentation Communication Communication 26
  33. 33. Teamwork Important: Standardization of processes Source Control (SVN) Documentation Communication Communication Communication Communication Communication Communication 26
  34. 34. Case Studies A few example PHP projects 27
  35. 35. Common Challenges Performance & Scalability Security Maintainability Time to Market 28
  36. 36. PHP and other technologies There’s still hope for Java 29
  37. 37. Legacy applications Case: Amsterdam RAI System-i/AS400 legacy application Web application Adapter Service Adapter Service Legacy app Legacy app 30
  38. 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. 39. Open Source A bit of background information 32
  40. 40. Open Source in a nutshell Access to Source Code Freedom to change Freedom to distribute Freedom to use Open Source Definition – Speech versus Beer 33
  41. 41. Well-known examples 34
  42. 42. Open Source in the Industry 35
  43. 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. 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. 45. Takeaways If you were sleeping, just remember this 38
  46. 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. 47. Shameless Plug php|architect's Guide to Enterprise PHP Development ISBN: 978-0-9738621-8-8 Order at or 40
  48. 48. Questions ? 41
  49. 49. Thank you! Contact details: Photos and logos (c) by their owners (taken from Google Images)