Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

C - Index of “Under the Hood” Boxes

Every optional aside in this book, in reading order, in case one of them stuck with you and you want to go find it again.

ChapterWhat it covers
Framework, CMS, or Headless?Why frameworks, CMSes, and API tools share the same underlying language features underneath different packaging
Scaffolding a First ProjectComposer’s dependency resolution and autoloading
Symfony/ConsoleConsole commands as plain PHP classes, no special runtime
GuzzlePSR-7 and PSR-18, the interfaces that let HTTP clients interoperate
League/PlatesWhy plain-PHP templates need no compile step
MonologPSR-3, the standard logging interface
Respect/ValidationValidation libraries leaning on PHP’s own type system
League/FlysystemInterface-based polymorphism applied to storage
WordPress Block ThemesBlocks stored as structured HTML, not PHP templates
TYPO3 Structured ContentTCA as metadata-driven UI generation
StatamicFlat files, PHP’s filesystem functions, and caching instead of SQL
Craft CMSDynamic property access powering flexible content fields
Laravel Breeze/FortifyWhy password hashing is deliberately slow (bcrypt/argon2id)
Symfony SecurityThe #[IsGranted] attribute and reflection
WordPress RolesCapabilities as plain strings, not a formal permissions engine
Laravel FilamentFluent, chainable objects enabled by named arguments and enums
Symfony EasyAdmin/SonataReading Doctrine entity metadata to infer field types
API Platform AdminGenerating an OpenAPI/Hydra schema from attributes
WordPress CPT as CRUDEvery post type sharing one wp_posts table
Laravel NovaWhy a paid license changes nothing about the underlying package mechanism
API Platform from One ClassAttributes plus reflection generating routing, validation, and docs
Laravel SanctumWhy tokens are hashed differently than passwords
WordPress REST APIThe REST API built on WordPress’s hooks and filters
Laravel Reverb/LivewirePHP Fibers, and how they make a WebSocket server possible
Symfony Mercure/TurboServer-Sent Events as a plain HTTP feature
Nextcloud TalkNextcloud’s app system and PHP’s own autoloading conventions
PusherWhy a good abstraction makes “self-host or pay” a reversible decision
Nextcloud StorageChunked uploads and ETags for efficient sync
Laravel Storage/S3Pre-signed URLs and cryptographic signatures
WordPress Media LibraryEager thumbnail generation via GD/Imagick
WooCommerceCommerce data modeled on the same wp_posts/wp_postmeta tables
SyliusBuilt from reusable Symfony components, not invented from scratch
Laravel Cashier/StripeVerifying webhook signatures before trusting a payload
Laravel ScoutA driver interface making search engines swappable
TYPO3 SolrMirroring page permissions into the search index
WordPress SearchWP_Query as the hook point for smarter search backends
Laravel QueuesJob serialization and why jobs should stay simple
Symfony MessengerRouting messages to handlers via PHP’s type system
WordPress WP-CronWhy WP-Cron triggers on page loads instead of a system timer
Laravel PrismA provider interface, the same pattern as Flysystem’s adapters
Symfony AI BundleDependency injection applied to an AI agent
WordPress AI PluginsWhy WordPress ships its own portable HTTP client
TYPO3 Multilingual TreesTranslations as linked records, not extra columns
WordPress Multisite/WPMLTwo different structural solutions to two different problems
Symfony TranslationTranslation files compiled into cached PHP arrays
Laravel Pest/LarastanStatic analysis reasoning over type hints without running code
Symfony PHPStan/RectorRector rewriting code by parsing and modifying its AST
WordPress TestingTest isolation via database transaction rollback
Cross-Ecosystem SASTData-flow analysis versus type-checking
Sentry/FlareHooking into PHP’s own exception and error handlers
FrankenPHP/OctaneWorker mode as the mirror image of Fibers
TYPO3 CachingTag-based cache invalidation
Nextcloud ScalingStorage adapters again, this time under scaling pressure
BlackfireProfiling via a Zend Engine extension
Laravel Forge/VaporStatelessness as the enabler of serverless deployment
Cloud HostingThe same PHP process, regardless of which cloud runs it
Platform.shInfrastructure as versioned configuration
WordPress Managed HostingObject caching with Redis/Memcached
Nextcloud AIOContainer orchestration via the mastercontainer pattern