Naming Convention
Good name drives good design.
- PHP Standards Recommendations
- PSR-1: Basic Coding Standard
- Flow Coding Guidelines
- Interpretation of "MUST", "REQUIRED", "SHALL", "SHOULD", "RECOMMENDED", "MAY", and
"OPTIONAL"
Abbreviations
|
Name
|
abbreviations
|
Count
|
cnt
|
Component
|
cmpt
|
Customer
|
cus
|
|
|
hrs
|
|
Hours
|
hrs
|
|
Labor
|
lbr
|
|
Length
|
len
|
|
Location
|
loc
|
|
Maximum
|
max
|
|
Method
|
mtd
|
|
Minimum
|
min
|
|
Minutes
|
mins
|
|
Number
|
num
|
|
Percentage
|
pct
|
|
Standard
|
std
|
| user |
usr |
| Vendor |
ven |
Readings
PHP
- PHP Design Patterns Reference and Examples [Loon, 20 Oct16]
- Password Hashing - Doing it Right [Loon, 20 Oct16]
- What are PHP Lambdas and Closures? [Loon, 01Nov16]
- PHP Authentication: Introduction [video] [Loon, 18Nov16]
Design Pattern
- RESTful Web Services [Loon, 20 Oct16]
- Understanding Singleton, Traits, Registry, Factory, DI, MVC [Loon, 17 jan17]
- The Repository Design Pattern [Loon, 31 May17]
RESTFUL Overview
- RESTful Web Services [Loon, 20 Oct16]
- The Ultimate Checklist for REST APIs by Kenneth Lange [Loon, 10 Nov17]
- A Beginner’s Guide to HTTP and REST [Loon, 01Nov16]
- Best Practices for Designing a Pragmatic RESTful API [Loon, 17 jan17]
- 10 Best Practices for Better RESTful API [Loon, 17 jan17]
- REST Resource Naming [Loon, 17 jan17]
- REST Architecture [Loon, 22 mar18]
RESTFUL in Depth
- Avoid Data Corruption in Your REST API with ETags by Kenneth Lange [Loon, 13 Nov17]
- API development: ETags and Conditional Get [Loon, 13 Nov17]
- ETags and Optimistic Concurrency Control [Loon, 13 Nov17]
APIs
- REST API concepts and examples [video] [Loon, 18Nov16]
- HATEOAS 101: Opinionated Introduction to a REST API [slide] [Loon, 02Mar17]
- Build a reusable REST API back end [Loon, 22Feb17]
- Creating a RESTful API with PHP [Loon, 16Feb17]
- Creating an API-Centric Web Application* [Loon, 24Feb17]
- RESTful APIs in the Real World Episode 1 [video] [Loon, 14 Mar17]
- How to design a REST API* [Loon, 7 May17]
- Atomic Transactions for the REST of us* [Loon, 22 Mar18]
- Atomic Distributed Transactions: a RESTful Design* [Loon, 22 Mar18]
API Gateways
- Microservices & API Gateways | Mashape [video] [Loon, 26Sep17]
- Building Microservices: Using an API Gateway [Loon, 24Feb17]
- API Proxy or Gateway? [Loon, 24Feb17]
- https://www.infoq.com/articles/microservices-intro [Loon, 29Sep17]
Micro-services
- Principles Of Microservices by Sam Newman [video] [Loon, 23Feb17]
- Microservice Architecture [Loon, 23Feb17]
- Microservices + Events + Docker = A Perfect Trio (dockercon) [slideshare] [Loon, 23Feb17]
- From Monolithic to Microservices: Evolving Architecture Patterns [video] [Loon, 23Feb17]
-
Microservices — When to React Vs. Orchestrate [video] [Loon, 27Mar18]
- The Netflix API Optimization Story [Loon, 27Sep17]
- I-Tier: Dismantling the Monolith [Loon, 27Sep17]
- The ebay Architecture [Loon, 27Sep17]
Serverless
- What is Serverless Architecture? [Loon, 27Sep17]
MVC
- Build a php MVC application [video] [Loon, 20 Oct16]
- Fat Models and Skinny Controllers Bring Out the Best in Your MVC Framework [Loon, 03 Feb17]
DI (Dependency Injection)
- Understanding Dependency Injection [Loon, 20 Oct16]
- Symfony Service Container [Loon, 20 Oct16]
- Dependency Injection - Quick Intro [Loon, 01Nov16]
- When Dependency Injection goes Wrong [Loon, 01Nov16]
- Where Have All the Singletons Gone? [Loon, 20 Dec 16]
- Understanding Dependency Injection (DI) & IOC [video] [Loon, 23 Dec16]
DIC (DI Container)
- When Dependency Injection goes Wrong [Loon, 01Nov16]
- DIC with php5.3/5.4 [Loon, 22Nov16]
- A simple do-it-yourself PHP service container [Loon, 22 Dec16]
- Dependency Injection and the art of Services and Containers [video] [Loon, 23 Dec16]
- Journey to the Center of Symfony: The Dependency Injection Container [video] [Loon, 26 Dec16]
- Laravel 4 - IoC Container Basics [video] [Loon, 26 Dec16]
Domain Driven Design (DDD)
Domain-driven design [Loon, 31 May17]
Advancing Enterprise DDD - The Entity and the Aggregate Root [Loon, 31 May17]
Service Layer
- What is a service layer? [Loon, 10 Feb17]
- Enterprise PHP: mappers, models and services [slideshare] [Loon, 10 Feb17]
- Service Layer [slideshare] [Loon, 10 Feb17]
Repository
- Martin Fowler Definition [Loon, 31 May17]
- Practical PHP Patterns: Repository [Loon, 31 May17]
ORM
- ORM, Active Record and Data Mapper [Loon, 02 Feb17]
- Active Record vs Data Mapper for Persistence [Loon, 02 Feb17]
- Enterprise PHP: mappers, models and services [slideshare] [Loon, 02 Feb17]
- What’s the difference between Active Record and Data Mapper? [Loon, 02 Feb17]
- * Building a Domain Model – Integrating Data Mappers [Loon, 31 May17]
Doctrine
- Working with Objects [Loon, 31 May17]
Multi-tenancy
- Multi-tenancy after 10 years of Cloud Computing [Loon, 26Sep17]
- Salesforce Multitenant Architecture: How We Do the Magic We Do [Loon, 06Mar17]
SPA
- How Single-Page Applications Work [Loon, 22Jun18]
Business
- Optimizing the Netflix API [Loon, 22May18]
- Performance and FT for the Netflix API[slide] [Loon, 22May18]
- The Internal Design of Force.com’s Multi-Tenant Architecture[video] [Loon, 22May18]
DNS
- Dynamically Provisioning Subdomains for SaaS Products [Loon, 27Feb17]
curl
- curl homepage [Loon, 01Nov16]
Storage & caching
- What is the difference between sessionstorage, localstorage and Cookies? [Loon, 22Jun18]
- Caching on the Edge [Loon, 22Nov16]
Security
- REST Security Cheatsheet [Loon, 01Nov16]
- Web security essentials - CORS [Loon, 08Jun18]
- Why is CORS important? [Loon, 01Nov16]
- HTTP access control (CORS) [Loon, 13May17]
- JSON Web Token (JWT) [Loon, 06Jun18]
- What is a JSON Web Token? [Loon, 06Jun18]
- Insufficient Transport Layer Security (HTTPS, TLS and SSL)
Exceptions
- PHP Exceptions [Loon, 17Apr17]
- A primer on PHP exceptions [Loon, 17Apr17]
Git
- Git 101 [Loon, 01Nov16]
- Git - the simple guide [Loon, 01Nov16]
- Git Branches by Atlassian [Loon, 01Nov16]
Avoid using this:
- $_SERVER[‘remote_addr’] is a CGI variable and it cannot be trusted
Platform
- PHP-FPM: Process Management [Loon, 15 Nov17]