Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
PHP Team Development
PHP Team Development

PHP Team Development: Easy and effective team work using MVC, agile development, source control, testing, bug tracking, and more

eBook
$9.99 $22.99
Paperback
$38.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

PHP Team Development

Chapter 2. MVC and Software Teams

The software patterns help software professionals to reuse the proven solutions to well-known problems. MVC (Model-View-Controller) is one such design pattern, mostly used in applications where user interfaces are involved.

Many PHP applications will have a web-based user interface. Even if you develop a PHP utility library to be used by other programmers, when they use that library in the real world, there will be some presentation logic, in other words a user interface, involved.

In this chapter, we will learn:

  • The software design patterns

  • The MVC pattern

  • How MVC can help in a PHP project

  • Implementing MVC with a team

  • Integration challenges

Software design patterns


The rationale for the use of patterns is very simple. We face problems when we develop software. We might face problems on making decisions about which algorithms to use, what is the most suitable design, what techniques to use, and what modules to use. The chances that the same kind of problem has been encountered by some other software professionals are very high. If someone else has faced the same problem before us, the chances of them having solved the problem is very high. If someone already solved the kind of problem that we are trying to solve, we are better off learning from that solution which is already available, rather than trying to reinvent the wheel.

Every problem is unique. Therefore, every solution should also be unique. So how can we use someone else's solution to our problem? The rationale for the use of software patterns is not about picking up ready made solutions to problems. Rather, the patterns guide us on how to approach a problem. In the...

MVC pattern


MVC is a widely known pattern that guides us to separate the presentation, logic, and data in an application where there is a user interface involved.

Intent

In many software applications, we need to retrieve data from a data store and display it for the user. If the user changes the data, the software application needs to store the updates in the data store. Because the flow of information is between the data store and the user interface, we are inclined to tie the data storage and the user interface together. This will reduce the amount of coding and also improve the application performance. However, this approach has some significant problems. The user interface tends to change much more frequently than the data storage system. Therefore, we should be able to change the user interface, without having to worry about the data storage.

For example, let's say that the data access logic and the presentation logic are in the same PHP script. We connect to the database, retrieve the...

Implementing MVC with a team


In the previous chapter, we discussed how separation of concerns would help when working with a team. We can divide the system into separate parts with independent concerns and get sub-teams to work on each separate aspect in parallel, and integrate all those individual pieces of the puzzle at a later stage.

The preceding image shows how we can distribute our team to map the elements of MVC. Team members can be assigned to each layer, based on each person's expertise.

The MVC pattern helps us identify key layers of a system with ease. At the highest layer, we can divide the system into MVC and get the sub-teams to work on each aspect.

The simplest assignment is to assign each layer to a sub-team. Thus, presentation, business logic, and database layers will each be handled by a separate sub-team. You can have UI experts assigned to the presentation layer, database experts to the data layer, and those who have a good understanding with algorithms and who have a good...

Integration challenges


You will run in to integration challenges, first and foremost, if you did not adhere to the principles in the design pattern. The simplest thing to remember is not to cross boundaries and that is the basic idea of the separation of concerns.

Note

Pay attention to boundaries in your design. Do not cross domains. The view should not control data or store data. Rather, it should only display data. Similarly, controller and model should focus on their respective responsibilities.

Always make sure that the team members of your team consciously ask the question, 'Is this within my boundary?'. The idea is to not pass the balls across to the others, but to stick to good design norms. The idea is pretty simple. The presentation should never process data, but only present information to the user.

Today's powerful web browsers can do so much that we might tend to lose focus on boundaries. For example, the presentation layer can use AJAX and naturally tends to do some business logic...

Summary


In this chapter, we had a look at how we can use the MVC pattern as the basis for separating concerns in the application and assign team members to each layer.

The presentation layer, or the view, is the layer that is most likely to change over time. The business logic layer can also change over time, but not as frequently as the presentation layer. Separating concerns helps us deal with system changes, as the system evolves.

When assigning team members to each layer, and each aspect within a layer, you need to take the personal skills and preferences into account, to ensure team success.

Adhering to the MVC principles will ensure that we can achieve system integration without any major surprises. As long as the model, view, or controller implementations do not cross their boundaries, we can ensure that we have loose coupling in the system, and therefore ensure that we can put them together to get the whole system working seamlessly.

In the next chapter, we will further dive into team...

Left arrow icon Right arrow icon

Key benefits

  • Work more effectively as a team by breaking up complex PHP projects into manageable sub-parts
  • Develop code that is much easier to maintain with source control, agile principles, and project tracking
  • Apply techniques related to process models, collaboration among team members, and continuous long-term improvement
  • A precise guide with examples to illustrate practical benefits

Description

Given the nature of the business environment today, organizations that want to build value-added enterprise PHP applications need a team of PHP people rather than an individual. You've got a team! What next? Customizing such applications to meet with organizational objectives and maintaining these applications over time can be quite a tedious task for your team with so many people involved. In this book, you will explore how you can break up complex PHP projects into simple sub-parts that multiple team members can work on. The book highlights the use of the MVC pattern for separating concerns in the application and agile principles to deliver code that works. You will learn to blend the simplicity and power of PHP with evolving software engineering principles and tools to easily develop code that is easy to maintain. With this book in hand, you know how to avoid getting muddled up while working in a team and achieve success on your project with effective team work. Organizations choose PHP as the preferred language for complex web applications because it is battle tested, hardened over time, and proven to work. Thus, chances of the software project you are involved with being PHP-based, are very high. Soon, you will need to explore the technical as well as non-technical aspects that are important to achieve success in PHP team projects of this kind. This book starts by explaining the need for teams working on complex software projects. You learn how you can divide the complexity of PHP projects with the help of the MVC pattern and the use of frameworks. It then discusses the need for a process and how you can choose the right process. It teaches you how to use agile principles to deliver working software for customers, and how to make sure that the team collaborates effectively. Towards the end, the book emphasizes continuous improvement in process and product as well as the people involved. You learn how to ensure that your team is open to change and user feedback, and has the right mindset about quality and other project-related aspects.

Who is this book for?

This book is for PHP developers who work in teams on complex PHP projects. With this book in hand, it is easy to discover the secrets of successful PHP projects that meet today's complex enterprise demands. This book can also be useful for project managers who are looking to be successful with PHP projects. Those who are stakeholders in PHP projects, such as clients, or those who want to sponsor PHP projects, can also learn what to expect and how to deal with a PHP project team with this book.

What you will learn

  • Reduce your development time by using MVC to break down complexity in PHP projects
  • Effectively use PHP frameworks to achieve project success
  • Master the concepts of effective collaboration, choosing the right process, and continuous long-term process improvement
  • Apply agile methodologies and pick up the practices that best suit your project
  • Catch and eliminate bugs early using source control and bug tracking tools
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Sep 03, 2009
Length: 184 pages
Edition : 1st
Language : English
ISBN-13 : 9781847195067
Languages :

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Sep 03, 2009
Length: 184 pages
Edition : 1st
Language : English
ISBN-13 : 9781847195067
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 115.97
PHP Team Development
$38.99
Backbone.js Patterns and Best Practices
$43.99
Persistence in PHP with Doctrine ORM
$32.99
Total $ 115.97 Stars icon

Table of Contents

7 Chapters
Software is Complex Chevron down icon Chevron up icon
MVC and Software Teams Chevron down icon Chevron up icon
Dealing with Complexity Chevron down icon Chevron up icon
The Process Matters Chevron down icon Chevron up icon
Agile Works Best Chevron down icon Chevron up icon
Ways of Collaboration Chevron down icon Chevron up icon
Continuous Improvement Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.7
(3 Ratings)
5 star 66.7%
4 star 33.3%
3 star 0%
2 star 0%
1 star 0%
Krzysztof Satola Feb 13, 2010
Full star icon Full star icon Full star icon Full star icon Full star icon 5
PHP Team Development covers technical topics like designing to divide complexity, conquering complex problems, choosing the right process, improving and monitoring the process and helps in keeping things as simple as they could be. There are also non technical topics covered like ensuring effective collaboration and keeping the process and product quality.For me the most important aspects of team work in software projects covered in the book are dealing with the complexity of software, dividing project problems among team members and solving them. The book also explains the relationship between the process and the product and helps to move from no process to having a process. It also explains why a process is so important in delivering a successful outcome.This book helps to understand better the value of process and project quality when working with a team. The author shows nicely what matters in endeavors to succeed.There is one thing which is missing there. Even there are some collaboration applications mentioned in the book I would like to learn more about most valued applications from the author's experience. That would help me to save time on exploring many available (sometimes not worthy spending time) solutions and be focused on valuable ones.This book is about PHP team development but I think many problems discussed by the author apply to projects based on other technologies or languages. This book is consise, short and precise. It is ideal for busy professionals dealing with software projects on both technical and non technical levels. The book is also suitable for beginners who want to learn what is takes to work with a team and succeed. And finally, this book is of great value for every team or project manager wanting to know how to establish a straight path to success for her development team.This book provide a wealth of practical knowledge. I definitely recommend it.
Amazon Verified review Amazon
Amir Habib May 10, 2013
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I recommend this book to every PHP team leader, it explains how to adopt software engineering principles with PHP development.
Amazon Verified review Amazon
Yohann G Aug 29, 2011
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
The title says it all: if you ever wonder what it is like to work into a team, this book is for you !Samisa Abeysinghe shares here all of his experience as project leader and director of engineering in software projects.He starts from scratch so that the reader can understand how to successfully realize a PHP project.From how to split a complex project to the ways to deliver a quality product, we learn most of the common mistakes to avoid and the tips to improve the team efficiency as well as the quality of the delivering.You don't have a process? No worry, PHP team development tells you how to go from nothing to a well defined process.Different process frameworks are offered so that the reader can be aware to several of them.Although sometimes too basic because it seems so logical when Samisa Abeysinghe writes it, it allows the readers to be able to grasp the different notions to make a project successful.What was missing however were concrete examples, the book give us patterns, processes but one or two business cases would have been great.To conclude, if you are a contractor/freelance and never worked into a team, you will learn all what is needed in this book.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the digital copy I get with my Print order? Chevron down icon Chevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
Modal Close icon
Modal Close icon