The Clean Architecture in PHP

The Clean Architecture in PHP
The Clean Architecture in PHP
by: Kristopher Wilson
Publication Date 出版日期: 2015
Print Length 页数: 251
Language 语言: English
About the Book
It happens so unexpectedly: your project started off great at first with you developing at a rapid pace,but before you know it,you’ve come to a screeching halt. Adding the simplest of features takes forever. Unrelated pieces of code keep breaking without being touched. You’ve given up on tests because you simply don’t have time and,frankly,they’re all broke at this point anyway.
Your code doesn’t have to be an unwieldy,soul crushing nightmare that revokes any joy of programming you once had.
Finding the best way to organize your code is one of the hardest parts of coding.
Determing the best way to architect your application is a very important step in development. Heading in the wrong direction can lead to a nightmare later,and make it nearly impossible to refactor the application to meet new demands,and can make properly testing the application a pain. While the methods outlined in this book aren’t the only way to go about developing an application,they do provide a framework for developing applications that are:
Testable
Refactorable
Easy to work with
Easy to maintain
In this book,we cover the Clean Architecture,coined by Uncle Bob,and how to implement it in PHP,as well as the concepts of SOLID design,various design patterns,and a look at various architectures.
Contents
Introduction
Organization
The Author
A Word about Coding Style
The Problem With Code
Writing Good Code is Hard
Writing Bad Code is Easy
We Can’t Test Anything
Change Breaks Everything
We Live or Die by the Framework
We Want to Use All the Libraries
Writing Good Code
What is Architecture?
What does Architecture Look Like?
Layers of Software
Examples of Poor Architecture
Costs of Poor Architecture
Coupling,The Enemy
Spaghetti Coupling
OOP Coupling
Why is Coupling the Enemy?
How do we Reduce Coupling?
Your Decoupling Toolbox
Design Patterns,A Primer
The Factory Patterns
Repository Pattern
Adapter Pattern
Strategy Pattern
Learning More Design Patterns
SOLID Design Principles
Single Responsibility Principle
Open/Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
Applying SOLID Principles
Dependency Injection
Inversion of Control
When to use Dependency Injection
Handling Many Dependencies
Are we still coupling?
Defining a Contract with Interfaces
Interfaces in PHP
Using Interfaces as Type Hints
Using Interfaces as a Contract
Making Third Party Code Conform to Contracts
Abstracting with Adapters
Setting up the Adapter
How does this help?
The Clean Architecture
MVC,and its Limitations
MVC in a Diagram
The MVC Components
Routing
MVC Isn’t Good Enough
Obese Models
More Layers for All of the Things!
The Clean Architecture
The Clean Architecture
The Onion Architecture
Framework Independence
The Problem with Frameworks
Framework Independence
This is a Lot of Work
Database Independence
Domain Models
Domain Services
Database Infrastructure / Persistence
Organizing the Code
Wrapping it Up
External Agency Independence
Using Interfaces,Adapters and Dependency Injection
Benefits
A Case Study in Clean Architecture
The Billing System
Application Workflow
Prerequisites
Building Our Domain
Setting up the Project
Creating the Entities
Domain Services
Wrapping it Up
Zend Framework 2 Setup
Installing with Composer
Cleaning up the Skeleton
Setting up Our Database
Table Gateway Factory
Wrapping it Up
Our Application in Zend Framework 2
Customer Management
Order Management
Invoice Management
Doctrine 2
Rebuilding the Persistence Layer
Creating Doctrine-based Repositories
Entity Mapping
Integrating Zend Framework and Doctrine
Injecting the New Repositories
Updating the Hydrators
Summary
Switching to Laravel
Setting up Laravel
Configuring Doctrine
Setting up the Dashboard
Customer Management
Order Management
Invoice Management
Next Steps
Summary

相关文件下载地址

打赏
未经允许不得转载:finelybook » The Clean Architecture in PHP

评论 抢沙发

觉得文章有用就打赏一下

您的打赏,我们将继续给力更多优质内容

支付宝扫一扫

微信扫一扫