SlideShare a Scribd company logo
1 of 13
+




    Agile Tools for PHP

    Philip Ting
+
    History of PHP

       1994 Rasmus Lerdorf, CGI binaries in C, online visit tracker

       1995 PHP released

       1997 PHP 2

       1998 Zeev Suraski and Andi Gutmans rewrite PHP into PHP 3,
        resembles PHP today

       2000 PHP 4, Zend engine
+
    History of PHP

       2004 PHP 5.0, Zend engine 2

       2005 PHP 5.1, PDO database access

       2006 PHP 5.2, JSON support

       2009 PHP 5.3, namespace, late static bindings, closures

       2012 PHP 5.4, traits, cli web server, array syntax
+
    Problems PHP Faced

    •   Code Base
        •   Naming inconsistencies (isset, is_null)

    •   Lack of modern language paradigms
        •   Changed for 5.3+

    •   Lack of solid development tools
        •   Changed recently
+
    Agile Values




       Development tools are meant to address adaptability and simplicity
+
    Web Frameworks

       Typically MVC
           Model
           View
           Controller

       Simplicity and Adaptability
+
    Web Frameworks - Simplicity

       CodeIgniter
           Easy to plug in, simple to work with, large community

       Kohana
           Originally fork of CodeIgniter, also simple to work with

       CakePHP
           Similar to Rails, lots of code generation
+
    Web Frameworks - Adaptability

       Zend Framework
           Enterprise development

       Symfony
           Enterprise development
           Other pieces
               Silex microframework (like Sinatra)
               CLI
+
    Test Frameworks

       Unit Tests
           PHPUnit, SimpleUnit

       BDD
           Behat, Codeception
           Selenium integration
           Cucumber integration
+
    Object Relational Mappers

       Object Relational Mappers (ORM)
           Used for generating models
           Can be considered frameworks of their own
           Meant to address both adaptability and simplicity

       ActiveRecord
           Doctrine, Propel

       DataMapper
           Doctrine 2
+
    Other Tools

       Dependency Management
           pecl, pear, Composer

       Continuous Integration
           Can use Jenkins
           Xinc

       Build tools
           Phing
               Similar to Ant
+
    Conclusion

       PHP is a very viable language to use for your project

       Google and Github are your friends
+
    Demonstration

More Related Content

What's hot

Agile Development with Smalltalk - Short
Agile Development with Smalltalk - ShortAgile Development with Smalltalk - Short
Agile Development with Smalltalk - Short
Tomáš Kukol
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - LongAgile Development with Smalltalk - Long
Agile Development with Smalltalk - Long
Tomáš Kukol
 

What's hot (20)

From .NET Core 3, all the rest will be legacy
From .NET Core 3, all the rest will be legacyFrom .NET Core 3, all the rest will be legacy
From .NET Core 3, all the rest will be legacy
 
Scala vs ruby
Scala vs rubyScala vs ruby
Scala vs ruby
 
Intro to Kotlin Minia GDG DevFest 2017
Intro to Kotlin Minia GDG DevFest 2017Intro to Kotlin Minia GDG DevFest 2017
Intro to Kotlin Minia GDG DevFest 2017
 
Let your REST API talk @java2days
Let your REST API talk @java2daysLet your REST API talk @java2days
Let your REST API talk @java2days
 
Groovy Finesse
Groovy FinesseGroovy Finesse
Groovy Finesse
 
Agile Development with Smalltalk - Short
Agile Development with Smalltalk - ShortAgile Development with Smalltalk - Short
Agile Development with Smalltalk - Short
 
Is this Swift for Android? A short introduction to the Kotlin language
Is this Swift for Android? A short introduction to the Kotlin languageIs this Swift for Android? A short introduction to the Kotlin language
Is this Swift for Android? A short introduction to the Kotlin language
 
The new era of PHP web development.
The new era of PHP web development.The new era of PHP web development.
The new era of PHP web development.
 
.Net Introduction
.Net Introduction.Net Introduction
.Net Introduction
 
SyPy IronPython
SyPy IronPythonSyPy IronPython
SyPy IronPython
 
Microsoft .Net Framework
Microsoft .Net FrameworkMicrosoft .Net Framework
Microsoft .Net Framework
 
GDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibsGDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibs
 
5 important languages for DevOps
5 important languages for DevOps5 important languages for DevOps
5 important languages for DevOps
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 
Confessions of a java developer that fell in love with the groovy language
Confessions of a java developer that fell in love with the groovy languageConfessions of a java developer that fell in love with the groovy language
Confessions of a java developer that fell in love with the groovy language
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - LongAgile Development with Smalltalk - Long
Agile Development with Smalltalk - Long
 
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San JoseTypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
 
Net overview
Net overviewNet overview
Net overview
 
.Net language support
.Net language support.Net language support
.Net language support
 
Introduction of .net framework
Introduction of .net frameworkIntroduction of .net framework
Introduction of .net framework
 

Viewers also liked

Ramos, alexis t. regression
Ramos, alexis t.   regressionRamos, alexis t.   regression
Ramos, alexis t. regression
ElaMeow
 
стратегические решения онлайн
стратегические решения онлайнстратегические решения онлайн
стратегические решения онлайн
Александр Чаусов
 
что такое игра го в расширенной версии
что такое игра го в расширенной версиичто такое игра го в расширенной версии
что такое игра го в расширенной версии
Александр Чаусов
 
Langcauon, judella y. correlation
Langcauon, judella y.   correlationLangcauon, judella y.   correlation
Langcauon, judella y. correlation
ElaMeow
 
Neelttei hicheel 8 a
Neelttei hicheel 8 aNeelttei hicheel 8 a
Neelttei hicheel 8 a
tsogttsetsii
 
Vectra manual
Vectra manualVectra manual
Vectra manual
zlatojce
 
Integral calculus
Integral calculusIntegral calculus
Integral calculus
ElaMeow
 
SD PHP Zend Framework
SD PHP Zend FrameworkSD PHP Zend Framework
SD PHP Zend Framework
philipjting
 
Huong dong 2
Huong dong 2Huong dong 2
Huong dong 2
xuanvu301
 

Viewers also liked (20)

Wba
WbaWba
Wba
 
Rundong Tang
Rundong Tang Rundong Tang
Rundong Tang
 
Kepemimpinan
KepemimpinanKepemimpinan
Kepemimpinan
 
Ramos, alexis t. regression
Ramos, alexis t.   regressionRamos, alexis t.   regression
Ramos, alexis t. regression
 
стратегические решения онлайн
стратегические решения онлайнстратегические решения онлайн
стратегические решения онлайн
 
что такое игра го в расширенной версии
что такое игра го в расширенной версиичто такое игра го в расширенной версии
что такое игра го в расширенной версии
 
Langcauon, judella y. correlation
Langcauon, judella y.   correlationLangcauon, judella y.   correlation
Langcauon, judella y. correlation
 
Neelttei hicheel 8 a
Neelttei hicheel 8 aNeelttei hicheel 8 a
Neelttei hicheel 8 a
 
Bagsh nariin hural ot [read only]-1346987264
Bagsh nariin hural ot [read only]-1346987264Bagsh nariin hural ot [read only]-1346987264
Bagsh nariin hural ot [read only]-1346987264
 
Becoming A Php Ninja
Becoming A Php NinjaBecoming A Php Ninja
Becoming A Php Ninja
 
Artificial Intelligence in Travel for TravelFest Travel 2.0 Conference
Artificial Intelligence in Travel for TravelFest Travel 2.0 ConferenceArtificial Intelligence in Travel for TravelFest Travel 2.0 Conference
Artificial Intelligence in Travel for TravelFest Travel 2.0 Conference
 
Vectra manual
Vectra manualVectra manual
Vectra manual
 
Emotional intelligence - For MBA's Disaster Management
Emotional intelligence - For MBA's Disaster ManagementEmotional intelligence - For MBA's Disaster Management
Emotional intelligence - For MBA's Disaster Management
 
Latest spectral ppt nov 2012 copy 2
Latest spectral ppt nov 2012   copy 2Latest spectral ppt nov 2012   copy 2
Latest spectral ppt nov 2012 copy 2
 
Integral calculus
Integral calculusIntegral calculus
Integral calculus
 
SD PHP Zend Framework
SD PHP Zend FrameworkSD PHP Zend Framework
SD PHP Zend Framework
 
Ahimsa - for Ethos subject!
Ahimsa - for Ethos subject!Ahimsa - for Ethos subject!
Ahimsa - for Ethos subject!
 
Huong dong 2
Huong dong 2Huong dong 2
Huong dong 2
 
Bahan persiapan lomdes
Bahan persiapan lomdesBahan persiapan lomdes
Bahan persiapan lomdes
 
Nintendo presentation 3.0
Nintendo presentation 3.0Nintendo presentation 3.0
Nintendo presentation 3.0
 

Similar to Agile Tools for PHP

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
Spiffy
 
Zend Framework 2, What's new, Confoo 2011
Zend Framework 2, What's new, Confoo 2011Zend Framework 2, What's new, Confoo 2011
Zend Framework 2, What's new, Confoo 2011
Bachkoutou Toutou
 

Similar to Agile Tools for PHP (20)

PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
 
Php Zen with Zend
Php Zen with ZendPhp Zen with Zend
Php Zen with Zend
 
Php Frameworks
Php FrameworksPhp Frameworks
Php Frameworks
 
Run Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**tRun Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**t
 
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
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
 
Porting Projects to .NET 5
Porting Projects to .NET 5Porting Projects to .NET 5
Porting Projects to .NET 5
 
A Tale of Two Toolkits
A Tale of Two ToolkitsA Tale of Two Toolkits
A Tale of Two Toolkits
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
RadPHP XE Datasheet
RadPHP XE DatasheetRadPHP XE Datasheet
RadPHP XE Datasheet
 
PHP and Zend Framework on Windows
PHP and Zend Framework on WindowsPHP and Zend Framework on Windows
PHP and Zend Framework on Windows
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
We b development trends
We b  development  trendsWe b  development  trends
We b development trends
 
Introduction to Server-Side Development with PHP.ppt
Introduction to Server-Side Development with PHP.pptIntroduction to Server-Side Development with PHP.ppt
Introduction to Server-Side Development with PHP.ppt
 
Feature and Compare between PHP Frameworks
Feature and Compare between PHP FrameworksFeature and Compare between PHP Frameworks
Feature and Compare between PHP Frameworks
 
Zend Framework 2, What's new, Confoo 2011
Zend Framework 2, What's new, Confoo 2011Zend Framework 2, What's new, Confoo 2011
Zend Framework 2, What's new, Confoo 2011
 
Zend Code in ZF 2.0
Zend Code in ZF 2.0Zend Code in ZF 2.0
Zend Code in ZF 2.0
 
Top 10 php frameworks in 2021
Top 10 php frameworks in 2021Top 10 php frameworks in 2021
Top 10 php frameworks in 2021
 
PHP on IBM i Tutorial
PHP on IBM i TutorialPHP on IBM i Tutorial
PHP on IBM i Tutorial
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 

Agile Tools for PHP

  • 1. + Agile Tools for PHP Philip Ting
  • 2. + History of PHP  1994 Rasmus Lerdorf, CGI binaries in C, online visit tracker  1995 PHP released  1997 PHP 2  1998 Zeev Suraski and Andi Gutmans rewrite PHP into PHP 3, resembles PHP today  2000 PHP 4, Zend engine
  • 3. + History of PHP  2004 PHP 5.0, Zend engine 2  2005 PHP 5.1, PDO database access  2006 PHP 5.2, JSON support  2009 PHP 5.3, namespace, late static bindings, closures  2012 PHP 5.4, traits, cli web server, array syntax
  • 4. + Problems PHP Faced • Code Base • Naming inconsistencies (isset, is_null) • Lack of modern language paradigms • Changed for 5.3+ • Lack of solid development tools • Changed recently
  • 5. + Agile Values  Development tools are meant to address adaptability and simplicity
  • 6. + Web Frameworks  Typically MVC  Model  View  Controller  Simplicity and Adaptability
  • 7. + Web Frameworks - Simplicity  CodeIgniter  Easy to plug in, simple to work with, large community  Kohana  Originally fork of CodeIgniter, also simple to work with  CakePHP  Similar to Rails, lots of code generation
  • 8. + Web Frameworks - Adaptability  Zend Framework  Enterprise development  Symfony  Enterprise development  Other pieces  Silex microframework (like Sinatra)  CLI
  • 9. + Test Frameworks  Unit Tests  PHPUnit, SimpleUnit  BDD  Behat, Codeception  Selenium integration  Cucumber integration
  • 10. + Object Relational Mappers  Object Relational Mappers (ORM)  Used for generating models  Can be considered frameworks of their own  Meant to address both adaptability and simplicity  ActiveRecord  Doctrine, Propel  DataMapper  Doctrine 2
  • 11. + Other Tools  Dependency Management  pecl, pear, Composer  Continuous Integration  Can use Jenkins  Xinc  Build tools  Phing  Similar to Ant
  • 12. + Conclusion  PHP is a very viable language to use for your project  Google and Github are your friends
  • 13. + Demonstration