waqas@dev:~$man -s7 architecture
How the systems on this site are actually put together. The patterns, the trade-offs behind them, and the diagrams that make them legible.
## Pricing Calculation
How room prices are calculated step by step
### Calculation Flow
### How It Works
Prices flow through stages: base calculation, then modifiers like taxes and discounts. Each stage is independent, so new pricing rules can be added without changing existing code. The result includes a full breakdown of how the price was calculated.
waqas@dev:~$cat PRINCIPLES.md
Clean Architecture
Dependencies point inward. The domain layer knows nothing about the layers outside it, so business logic stays framework-agnostic.
SOLID Principles
Single responsibility, open-closed, Liskov substitution, interface segregation, dependency inversion.
Domain-Driven Design
Bounded contexts, aggregates, value objects and a shared vocabulary, for domains complicated enough to need them.
Type Safety
PHPStan level 9, strict types, readonly classes and typed properties, so the failure surfaces before it ships.
Immutability
Value objects and DTOs that return new instances rather than mutating. Cheaper to reason about than to debug.
Testability
Dependency injection, interfaces and pure functions, so a unit test does not need a database to run.