SlideShare a Scribd company logo
Developing better PHP
projects
Md Emran Hasan
phpXperts seminar 2010
Nov 06, 2010
Who are you?
• Team / Project lead ?
• Development Manager ?
• Senior Developer ?
• Freelancer ?
Developing better PHP projects
Why you need this ?
• Better project organization
• Improved teamwork
• Adaptable to change
• Predictable and maintainable
Elements
• Quality of code
• Project structure
• Development practices
• Use of tools
Project Structure
Common types
• Stand-alone
• Framework
• Hybrid
Stand-alone
index.php
login.php
account.php
...
inc/
config.php
common.php
lib/
email_sender.php
alldb.php
xmlwriter.php
ezSql/
tcpdf/
Stand-alone (cont’d)
• Separate files
• All variables are global
• Difficult to manage
• Almost no separation of concern
Framework
library/
Zend/
application/
config/
application.ini
controllers/
Auth.php
Page.php
models/
User.php
Page.php
views/
script/
auth/
login.php
forgot.php
Framework (cont’d)
• Built on top of Library Collection
• Applications extend from it
• Focuses on 20% of the 80-20 rule
Hybrid
.htaccess
index.php
Pages/
Login.php
Account.php
Home.php
...
Models/
User.php
Page.php
Lib/
ezSQL/
Zend/
tcpdf/
Hybrid (cont’d)
• Improved version of stand-alone
• Utilizes other Library Collection (Zend,
PEAR)
• Uses Front Controller approach
Development Practices
Planning
• Collaborate with customer
• Estimate team-wise
• Break total work into iterations
• Daily stand-up meeting
Design
• Prefer simple design over complexity
• Adhere to a coding standard
• Avoid guessing by doing coding spike!
Coding
• Write unit tests first
• Collective code ownership
• Optimize last
• Refactor mercilessly
First make it work,
then make it right,
then make it fast.
- Kent Beck
Use of tools
Choosing tools
• Having a process helps choose tools
• Choosing Inappropriate tool can do harm
• Build a process if you don’t have any
Type of tools
Release Management
Development Management
Product Management
Product Management
• Should allow building requirements (use
cases, screen mockups, etc)
• Must be collaborative
• Must be shared among project members
Development Management
• Need to allow multiple developers to work
together (version control)
• Need to keep codebase under control
(code review)
• Need to deal with bugs (issue tracking)
Release Management
• Needs to allow setting project timeline
• Should allow scheduling of milestones
• Should measure development team velocity
Suggestion for Newcomer
• Version Control: Subversion
• Issue/FeatureTracking: Spreadsheet (Excel,
Google Docs)
• Collaboration: Dropbox, Google Docs
• Communication: IM, Email, Meetings
Suggestion for Intermediate
• Version Control: Subversion, Git/Mercurial
• Issue/FeatureTracking: trac, Mantis, Flyspray
• Collaboration: Wiki, Google Docs
• Code Review: Peer-to-peer review
• Communication: IM, Email, Meetings
Suggestion for Experts
• Version Control: Git/Mercurial
• Integrated Project Management: JIRA, Redmine,Trac
• Collaboration: Wiki, Google Docs
• Code Review: Review Board, Crucible
• QA Automation: Selenium,Watir, phpUnit
• Continuos Integration: Hudson, CruiseControl
Tips for picking right tool
• Tool that you can configure easily
• Tool that complements your process (does
not fight you)
• Tool that your team can adjust with easily
Summary
Take-aways
• Structure your project properly (use
framework if possible)
• Maintain good coding practice in team
• Use tools to increase team efficiency
Questions?
References
• Subversion
• Git
• Mercurial
• Google Docs
• Review Board
• JIRA
• Mantis
• Basecamp
• Redmine
• Trac
• Selenium
• Watir
• Hudson
• Cruise Control
• Flyspray
• Dropbox

More Related Content

PDF
Organizing Your PHP Projects (2010 ConFoo)
Paul Jones
 
PDF
Enterprise PHP
Mohammad Emran Hasan
 
PDF
Becoming A Php Ninja
Mohammad Emran Hasan
 
PDF
Composer - The missing package manager for PHP
Tareq Hasan
 
PPTX
Zend con 2016 bdd with behat for beginners
Adam Englander
 
PDF
Developing PHP Applications Faster
Adam Culp
 
PDF
Expressive Microservice Framework Blastoff
Adam Culp
 
PDF
Build & deploy PHP application (intro level)
Anton Babenko
 
Organizing Your PHP Projects (2010 ConFoo)
Paul Jones
 
Enterprise PHP
Mohammad Emran Hasan
 
Becoming A Php Ninja
Mohammad Emran Hasan
 
Composer - The missing package manager for PHP
Tareq Hasan
 
Zend con 2016 bdd with behat for beginners
Adam Englander
 
Developing PHP Applications Faster
Adam Culp
 
Expressive Microservice Framework Blastoff
Adam Culp
 
Build & deploy PHP application (intro level)
Anton Babenko
 

What's hot (20)

PDF
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
PPTX
Web development with Python
Raman Balyan
 
PDF
Php Dependency Management with Composer ZendCon 2017
Clark Everetts
 
PDF
Foundations of Zend Framework
Adam Culp
 
PDF
Practical PHP Deployment with Jenkins
Adam Culp
 
PDF
Best Practices in PHP Application Deployment
Shahar Evron
 
PPTX
Phalcon overview
Adam Englander
 
PDF
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Pantheon
 
PDF
Why Your Site is Slow: Performance Answers for Your Clients
Pantheon
 
PDF
Virtualizing Development
Adam Culp
 
PDF
Containerizing legacy applications
Andrew Kirkpatrick
 
PDF
Behaviour testing for single-page applications and API’s
Andrew Kirkpatrick
 
PDF
Zend Framework 2, What's new, Confoo 2011
Bachkoutou Toutou
 
PPTX
WordPress Under Control (Boston WP Meetup)
Matt Bernhardt
 
PDF
The Themer's Guide to WP-CLI
Edmund Turbin
 
PPTX
Introduction to GoLang
NVISIA
 
PPTX
WordPress automation and CI
Ran Bar-Zik
 
PPTX
Quality code in wordpress
Ran Bar-Zik
 
PDF
mod_php vs FastCGI vs FPM vs CLI
Jacques Woodcock
 
PPTX
PowerShell 101 - What is it and Why should YOU Care!
Thomas Lee
 
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
Web development with Python
Raman Balyan
 
Php Dependency Management with Composer ZendCon 2017
Clark Everetts
 
Foundations of Zend Framework
Adam Culp
 
Practical PHP Deployment with Jenkins
Adam Culp
 
Best Practices in PHP Application Deployment
Shahar Evron
 
Phalcon overview
Adam Englander
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Pantheon
 
Why Your Site is Slow: Performance Answers for Your Clients
Pantheon
 
Virtualizing Development
Adam Culp
 
Containerizing legacy applications
Andrew Kirkpatrick
 
Behaviour testing for single-page applications and API’s
Andrew Kirkpatrick
 
Zend Framework 2, What's new, Confoo 2011
Bachkoutou Toutou
 
WordPress Under Control (Boston WP Meetup)
Matt Bernhardt
 
The Themer's Guide to WP-CLI
Edmund Turbin
 
Introduction to GoLang
NVISIA
 
WordPress automation and CI
Ran Bar-Zik
 
Quality code in wordpress
Ran Bar-Zik
 
mod_php vs FastCGI vs FPM vs CLI
Jacques Woodcock
 
PowerShell 101 - What is it and Why should YOU Care!
Thomas Lee
 
Ad

Viewers also liked (8)

PDF
Caching basics in PHP
Anis Ahmad
 
PDF
Choose Boring Technology
Dan McKinley
 
PPTX
Seminar: PHP Developer for Dummies
Achmad Solichin
 
PPT
Discussion Paper: Bugs Tracking
Deny Prasetia
 
PPT
LIST OF TOP BUG TRACKING TOOLS AND WHY ARE THEY CALLED SO
Vivek Bhardwaj
 
PPT
SQL Injection
Adhoura Academy
 
PPTX
Sql injection
Zidh
 
PDF
Sql Injection Myths and Fallacies
Karwin Software Solutions LLC
 
Caching basics in PHP
Anis Ahmad
 
Choose Boring Technology
Dan McKinley
 
Seminar: PHP Developer for Dummies
Achmad Solichin
 
Discussion Paper: Bugs Tracking
Deny Prasetia
 
LIST OF TOP BUG TRACKING TOOLS AND WHY ARE THEY CALLED SO
Vivek Bhardwaj
 
SQL Injection
Adhoura Academy
 
Sql injection
Zidh
 
Sql Injection Myths and Fallacies
Karwin Software Solutions LLC
 
Ad

Similar to Developing better PHP projects (20)

PPT
How to run an Enterprise PHP Shop
Jim Plush
 
PPTX
Enterprise Development on a Shoestring Budget
Chris Tankersley
 
PDF
Developing sustainable php projects
Michele Orselli
 
KEY
PHP Industrialization
Damien Seguy
 
ODP
Getting your project_started
Adam Culp
 
ODP
Enterprise Workflows When You Aren't Enterprise
Chris Tankersley
 
PPT
How To Do A Project?
Aravinth NSP
 
PPT
How To Do A Project
Sudarsun Santhiappan
 
PPT
Software Engineering in PHP
M A Hossain Tonu
 
PDF
Building Sustainable Software: An Introduction to Software Engineering
Muhammad Shehata
 
PPTX
Software Factory - Overview
slides_teltools
 
ODP
Building Scalable Development Environments
Shahar Evron
 
ZIP
Epitech industrialisation 2012.key
Damien Seguy
 
PPTX
Different approaches for different scopes: How to tackle a medium-sized Dr...
Symetris
 
PDF
Getting It Done
Wez Furlong
 
PDF
From naive to agile - software engineering approach
Stayman Hou
 
PDF
Umbraco development across large and distributed teams
Janusz Stabik
 
PPT
Spm lecture-5
Sulman Ahmed
 
KEY
Confoo
Damien Seguy
 
How to run an Enterprise PHP Shop
Jim Plush
 
Enterprise Development on a Shoestring Budget
Chris Tankersley
 
Developing sustainable php projects
Michele Orselli
 
PHP Industrialization
Damien Seguy
 
Getting your project_started
Adam Culp
 
Enterprise Workflows When You Aren't Enterprise
Chris Tankersley
 
How To Do A Project?
Aravinth NSP
 
How To Do A Project
Sudarsun Santhiappan
 
Software Engineering in PHP
M A Hossain Tonu
 
Building Sustainable Software: An Introduction to Software Engineering
Muhammad Shehata
 
Software Factory - Overview
slides_teltools
 
Building Scalable Development Environments
Shahar Evron
 
Epitech industrialisation 2012.key
Damien Seguy
 
Different approaches for different scopes: How to tackle a medium-sized Dr...
Symetris
 
Getting It Done
Wez Furlong
 
From naive to agile - software engineering approach
Stayman Hou
 
Umbraco development across large and distributed teams
Janusz Stabik
 
Spm lecture-5
Sulman Ahmed
 
Confoo
Damien Seguy
 

Recently uploaded (20)

PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Doc9.....................................
SofiaCollazos
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 

Developing better PHP projects