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
€20.69 €22.99
Paperback
€23.19 €28.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
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

Billing Address

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

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 : 9781847195074
Languages :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
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

Billing Address

Product Details

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

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.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
€189.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
€264.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 69.57 86.97 17.40 saved
PHP Team Development
€23.19 €28.99
Backbone.js Patterns and Best Practices
€26.39 €32.99
Persistence in PHP with Doctrine ORM
€19.99 €24.99
Total 69.57 86.97 17.40 saved 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

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.

Modal Close icon
Modal Close icon