SlideShare a Scribd company logo
… to be precise: “PHP in real world”
ď‚§ Introduction
ď‚§ A look at PHP
ď‚§ What is Enterprise
ď‚§ Development Lifecycle
ď‚§ Enterprise Techniques
ď‚§ Take-Aways
ď‚§ Open Discussion
Who is here?
Enterprise PHP
ď‚§ How many of us here are:

  • Management / Decision makers

  • Project Managers

  • Developers – PHP

  • Developers – Other (.NET/RoR/Python/Java/…)

  • Student / Hobbyist
Past and Present
Enterprise PHP
Enterprise PHP
Enterprise PHP
ď‚§ Made for the web
ď‚§ Low learning curve
ď‚§ Short time-to-market
ď‚§ Huge active community
 Platform independent (Linux, windows, …)
ď‚§ Open source
ď‚§ Versatile
ď‚§ Backed by Zend, Microsoft, IBM, etc.
Enterprise PHP
 “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
 “PHP does not scale”
  • Most often PHP is not the bottleneck, DB is
  • Language does not scale, architecture does

 “PHP is not ready for Enterprise”
  • Already running in mission-critical enterprises
  • More on this later
When to consider something enterprise, and why
ď‚§ Customizability
   • Adherence to business-specific rules

   • Adaption of changing business environment

   • Change of direction

ď‚§ Scalability
   • Need to scale as business grows
   • Change in infrastructure
ď‚§ Security
   • Security is priority #1

ď‚§ Integration
   • Needs to work seamlessly with existing solutions

   • Should be open for collaboration

ď‚§ Performance
   • Response time

   • Load time
How we do it in real life
ď‚§ Analysis

ď‚§ Design
ď‚§ Coding

ď‚§ Testing

ď‚§ Deployment and Maintenance
ď‚§ Scrum

ď‚§ Extreme Programming (XP)

ď‚§ Kanban

ď‚§ OpenAgile
ď‚§ Working software is delivered frequently

ď‚§ Working software is the principal measure of progress

ď‚§ Even late changes in requirements are welcomed

ď‚§ Regular adaptation to changing circumstances

ď‚§ Customer is a part of the team
How to get ready for the enterprise
ď‚§ Simple code    ď‚§ Caching

ď‚§ DRY            ď‚§ Debugging

ď‚§ Code quality   ď‚§ Deployment

ď‚§ Security       ď‚§ Performance

ď‚§ Testing        ď‚§ Refactoring
ď‚§ This is easier said than done

ď‚§ Do the simplest thing that could possibly work.
ď‚§ Do not run for complexity, complexity kills!
ď‚§ Stick to standards

ď‚§ Open source = open knowledge
ď‚§ Reuse Experience

ď‚§ Use Components

ď‚§ Use Frameworks
ď‚§ Static Code Analysis
   • Lint (php -l)
   • PHP_CodeSniffer

ď‚§ Software Metrics
   • PHPUnit
   • PHP_Depend

ď‚§ Output validation
   • Tidy
   • HTML/CSS validation
ď‚§ Security is not an afterthought, it should be built within
  the system
ď‚§ Trust no one
ď‚§ Handle common issues:
   • XSS,
   • SQL/Code injection,
   • Session fixation,
   • Session hijacking,
   • CSRF
ď‚§ Unit Tests

ď‚§ Integration Tests
ď‚§ Acceptance Tests

ď‚§ Testing Tools:
   • PHPUnit (http://www.phpunit.de)

   • Selenium (http://seleniumhq.org)
ď‚§ Use a compiler cache (Zend, APC, etc)

ď‚§ Cache generated content:
  • Whole pages or fragments (disk, squid, memcache)

  • Database query results (query cache, memcache)

  • External data (memcache, disk)
ď‚§ Create a test to expose each bug

ď‚§ Keep the test, and run it often
ď‚§ Tool:
   • xdebug (http://www.xdebug.org)

   • Tracing

   • Remote Debugging
ď‚§ Always automate deployment
ď‚§ Use 3 Systems
   • Development
   • Integration/Staging
   • Live
ď‚§ Consider virtual machines / cloud hosting
ď‚§ Do not guess where to start

ď‚§ Profile your code
   • how often are functions called

   • how long does execution take

ď‚§ Look for all possible execution path

ď‚§ Tool:
   • xdebug (http://www.xdebug.org)
ď‚§ Improve the design of software without changing its
  behavior

ď‚§ Not adding new features

 “Cleaning up” code
ď‚§ Keep refactoring your code constantly

ď‚§ Use unit tests to ensure you don't break anything
ď‚§ 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)
Enterprise PHP
ď‚§ PHP is a serious language
ď‚§ PHP is used in big, real world projects
ď‚§ Good life cycle for project matters
ď‚§ PHP can be used in conjunction with other technologies
ď‚§ When developing software for enterprise:
   • Keep things simple
   • Accept change
   • Test early and often
   • Automate tests and deployment
Questions ??

More Related Content

PDF
Developing better PHP projects
PDF
Becoming A Php Ninja
PDF
Organizing Your PHP Projects (2010 ConFoo)
PDF
Composer - The missing package manager for PHP
PDF
Build & deploy PHP application (intro level)
PDF
Developing PHP Applications Faster
PDF
Expressive Microservice Framework Blastoff
PDF
30 Skills to Master to Become a Senior Software Engineer
Developing better PHP projects
Becoming A Php Ninja
Organizing Your PHP Projects (2010 ConFoo)
Composer - The missing package manager for PHP
Build & deploy PHP application (intro level)
Developing PHP Applications Faster
Expressive Microservice Framework Blastoff
30 Skills to Master to Become a Senior Software Engineer

What's hot (20)

PDF
Php Dependency Management with Composer ZendCon 2017
PDF
Practical PHP Deployment with Jenkins
PDF
Foundations of Zend Framework
PPTX
Web development with Python
PDF
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
PDF
Best Practices in PHP Application Deployment
PPTX
Phalcon overview
PDF
Why Your Site is Slow: Performance Answers for Your Clients
PPTX
Releasing High Quality Packages - Longhorn PHP 2021
PPTX
WordPress automation and CI
PDF
Behaviour testing for single-page applications and API’s
PDF
Containerizing legacy applications
PPTX
XDebug For php debugging
PDF
mod_php vs FastCGI vs FPM vs CLI
PDF
Virtualizing Development
PPTX
Introduction to GoLang
 
PDF
Buildr - build like you code
PDF
Testing Your Code as Part of an Industrial Grade Workflow
PPTX
PowerShell 101 - What is it and Why should YOU Care!
PDF
Magento 2 performance profiling and best practices
Php Dependency Management with Composer ZendCon 2017
Practical PHP Deployment with Jenkins
Foundations of Zend Framework
Web development with Python
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Best Practices in PHP Application Deployment
Phalcon overview
Why Your Site is Slow: Performance Answers for Your Clients
Releasing High Quality Packages - Longhorn PHP 2021
WordPress automation and CI
Behaviour testing for single-page applications and API’s
Containerizing legacy applications
XDebug For php debugging
mod_php vs FastCGI vs FPM vs CLI
Virtualizing Development
Introduction to GoLang
 
Buildr - build like you code
Testing Your Code as Part of an Industrial Grade Workflow
PowerShell 101 - What is it and Why should YOU Care!
Magento 2 performance profiling and best practices
Ad

Similar to Enterprise PHP (20)

PPT
Software Engineering in PHP
PPTX
Enterprise Development on a Shoestring Budget
PPT
Enterprise PHP (PHP London Conference 2008)
PPT
How to run an Enterprise PHP Shop
PPT
Scaling Web Apps P Falcone
 
KEY
Confoo
PPT
Enterprise PHP (Zend UK Business Conference)
PDF
Enterprise PHP Development - Ivo Jansch
 
PDF
From dev to ops and beyond - getting it done
ZIP
Epitech industrialisation 2012.key
KEY
PHP Industrialization
PPT
scale_perf_best_practices
PPTX
Keeping up with PHP
PDF
Enterprise PHP Development - ZendCon 2008
ODP
Building Scalable Development Environments
PPTX
The Professional Programmer
PPT
Make Web, Not War - Building Interoperable Web Apps with PHP, PHP Quebec
PPTX
A Tale of Two Apps
PDF
PHP Development Guide.pdf
 
PDF
Characteristics of PHP web development services to boost productivity
Software Engineering in PHP
Enterprise Development on a Shoestring Budget
Enterprise PHP (PHP London Conference 2008)
How to run an Enterprise PHP Shop
Scaling Web Apps P Falcone
 
Confoo
Enterprise PHP (Zend UK Business Conference)
Enterprise PHP Development - Ivo Jansch
 
From dev to ops and beyond - getting it done
Epitech industrialisation 2012.key
PHP Industrialization
scale_perf_best_practices
Keeping up with PHP
Enterprise PHP Development - ZendCon 2008
Building Scalable Development Environments
The Professional Programmer
Make Web, Not War - Building Interoperable Web Apps with PHP, PHP Quebec
A Tale of Two Apps
PHP Development Guide.pdf
 
Characteristics of PHP web development services to boost productivity
Ad

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Modernizing your data center with Dell and AMD
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation_ Review paper, used for researhc scholars
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Modernizing your data center with Dell and AMD
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Dropbox Q2 2025 Financial Results & Investor Presentation
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Review of recent advances in non-invasive hemoglobin estimation
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Monthly Chronicles - July 2025

Enterprise PHP

  • 1. … to be precise: “PHP in real world”
  • 2. ď‚§ Introduction ď‚§ A look at PHP ď‚§ What is Enterprise ď‚§ Development Lifecycle ď‚§ Enterprise Techniques ď‚§ Take-Aways ď‚§ Open Discussion
  • 5. ď‚§ How many of us here are: • Management / Decision makers • Project Managers • Developers – PHP • Developers – Other (.NET/RoR/Python/Java/…) • Student / Hobbyist
  • 10. ď‚§ Made for the web ď‚§ Low learning curve ď‚§ Short time-to-market ď‚§ Huge active community ď‚§ Platform independent (Linux, windows, …) ď‚§ Open source ď‚§ Versatile ď‚§ Backed by Zend, Microsoft, IBM, etc.
  • 12. ď‚§ “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
  • 13. ď‚§ “PHP does not scale” • Most often PHP is not the bottleneck, DB is • Language does not scale, architecture does ď‚§ “PHP is not ready for Enterprise” • Already running in mission-critical enterprises • More on this later
  • 14. When to consider something enterprise, and why
  • 15. ď‚§ Customizability • Adherence to business-specific rules • Adaption of changing business environment • Change of direction ď‚§ Scalability • Need to scale as business grows • Change in infrastructure
  • 16. ď‚§ Security • Security is priority #1 ď‚§ Integration • Needs to work seamlessly with existing solutions • Should be open for collaboration ď‚§ Performance • Response time • Load time
  • 17. How we do it in real life
  • 18. ď‚§ Analysis ď‚§ Design ď‚§ Coding ď‚§ Testing ď‚§ Deployment and Maintenance
  • 19. ď‚§ Scrum ď‚§ Extreme Programming (XP) ď‚§ Kanban ď‚§ OpenAgile
  • 20. ď‚§ Working software is delivered frequently ď‚§ Working software is the principal measure of progress ď‚§ Even late changes in requirements are welcomed ď‚§ Regular adaptation to changing circumstances ď‚§ Customer is a part of the team
  • 21. How to get ready for the enterprise
  • 22. ď‚§ Simple code ď‚§ Caching ď‚§ DRY ď‚§ Debugging ď‚§ Code quality ď‚§ Deployment ď‚§ Security ď‚§ Performance ď‚§ Testing ď‚§ Refactoring
  • 23. ď‚§ This is easier said than done ď‚§ Do the simplest thing that could possibly work. ď‚§ Do not run for complexity, complexity kills!
  • 24. ď‚§ Stick to standards ď‚§ Open source = open knowledge ď‚§ Reuse Experience ď‚§ Use Components ď‚§ Use Frameworks
  • 25. ď‚§ Static Code Analysis • Lint (php -l) • PHP_CodeSniffer ď‚§ Software Metrics • PHPUnit • PHP_Depend ď‚§ Output validation • Tidy • HTML/CSS validation
  • 26. ď‚§ Security is not an afterthought, it should be built within the system ď‚§ Trust no one ď‚§ Handle common issues: • XSS, • SQL/Code injection, • Session fixation, • Session hijacking, • CSRF
  • 27. ď‚§ Unit Tests ď‚§ Integration Tests ď‚§ Acceptance Tests ď‚§ Testing Tools: • PHPUnit (http://www.phpunit.de) • Selenium (http://seleniumhq.org)
  • 28. ď‚§ Use a compiler cache (Zend, APC, etc) ď‚§ Cache generated content: • Whole pages or fragments (disk, squid, memcache) • Database query results (query cache, memcache) • External data (memcache, disk)
  • 29. ď‚§ Create a test to expose each bug ď‚§ Keep the test, and run it often ď‚§ Tool: • xdebug (http://www.xdebug.org) • Tracing • Remote Debugging
  • 30. ď‚§ Always automate deployment ď‚§ Use 3 Systems • Development • Integration/Staging • Live ď‚§ Consider virtual machines / cloud hosting
  • 31. ď‚§ Do not guess where to start ď‚§ Profile your code • how often are functions called • how long does execution take ď‚§ Look for all possible execution path ď‚§ Tool: • xdebug (http://www.xdebug.org)
  • 32. ď‚§ Improve the design of software without changing its behavior ď‚§ Not adding new features ď‚§ “Cleaning up” code ď‚§ Keep refactoring your code constantly ď‚§ Use unit tests to ensure you don't break anything
  • 33. ď‚§ 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
  • 36. ď‚§ PHP is a serious language ď‚§ PHP is used in big, real world projects ď‚§ Good life cycle for project matters ď‚§ PHP can be used in conjunction with other technologies ď‚§ When developing software for enterprise: • Keep things simple • Accept change • Test early and often • Automate tests and deployment