← Home ← Codex ← DEBT ← Engine
Browse by Category
+ added · updated 7d
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Immutability PHP 8.1+ 🧠 3
Objects whose state cannot change after construction — immutable objects are inherently thread-safe, predictable, and easy to reason about.
4mo ago Code Quality intermediate
Input Validation vs Output Encoding PHP 5.0+ 🧠 4
Validation checks that input is acceptable; output encoding makes data safe for the context it's rendered in. Both are required.
4mo ago General beginner
Diagram: Insecure Direct Object Reference (IDOR) Insecure Direct Object Reference (IDOR) PHP 5.0+ 🧠 1
A user accesses another user's data by changing an ID in a URL or request — no authorisation check performed.
CWE-639 OWASP A1:2021
4mo ago Security intermediate 7.5
Insufficient Logging & Monitoring
Failure to log security events and monitor them allows attacks to go undetected and unresponded to.
CWE-778 OWASP A9:2021
4mo ago Security beginner 6.5
Lazy Loading HTML5
Defer loading or initialising a resource until it is actually needed, reducing startup cost and memory usage.
4mo ago Performance beginner
Magic Number PHP 5.0+ 🧠 1
A numeric literal with no explanation — its meaning is unclear without context, harming readability and maintainability.
4mo ago Code Quality beginner
Diagram: N+1 Query Problem N+1 Query Problem PHP 5.0+
Executing one query to get N records, then N more queries to fetch related data — one per record.
4mo ago Performance intermediate
OPcache PHP 5.5+ 🧠 11
A PHP extension that caches precompiled bytecode in shared memory, eliminating repeated parsing and compilation overhead.
4mo ago PHP intermediate
Prepared Statement PHP 5.1+ 🧠 2
A parameterised SQL query where data placeholders are bound separately from the query structure, preventing SQL injection.
4mo ago PHP intermediate
Rate Limiting PHP 5.0+ 🧠 2
Restricting the number of requests a client can make in a given time window to prevent abuse, DoS, and credential stuffing.
CWE-770 OWASP A5:2021
4mo ago Performance intermediate
Diagram: Repository Pattern Repository Pattern PHP 5.0+ 🧠 3
Abstracts the data persistence layer behind an interface, decoupling domain logic from database implementation details.
4mo ago General intermediate
Diagram: Session Fixation Session Fixation PHP 5.0+ 🧠 2
An attacker forces a victim to use a known session ID, then hijacks their session after they authenticate.
CWE-384 OWASP A7:2021
4mo ago Security intermediate 8.0
Single Responsibility Principle PHP 5.0+
A class or function should have one reason to change — doing one thing and doing it well.
4mo ago General beginner
SOLID Principles (Overview) PHP 5.0+ 🧠 1
Five object-oriented design principles — SRP, OCP, LSP, ISP, DIP — that together guide towards maintainable, extensible code.
4mo ago Code Quality intermediate
Diagram: SQL Injection SQL Injection PHP 5.1+ 🧠 4
Unsanitised user input inserted directly into a SQL query, letting attackers read, modify, or delete database data.
CWE-89 OWASP A3:2021
4mo ago Security intermediate 9.8
Asymmetric Visibility (PHP 8.4) PHP 8.4+
PHP 8.4 asymmetric visibility lets you set different access levels for reading and writing a property — public(get) protected(set) — without getter/setter methods.
PHP intermediate
Lazy Objects (PHP 8.4) PHP 8.4+
PHP 8.4 native lazy objects defer object initialisation until first property access — previously requiring proxy libraries, now built into the engine via ReflectionClass.
PHP advanced
Property Hooks (PHP 8.4) PHP 8.4+
PHP 8.4 property hooks attach get/set logic directly to a property declaration — eliminating getter/setter method boilerplate for common validation and transformation patterns.
PHP advanced
RangeError — Stack Overflow & Invalid Values ES5
RangeError is thrown when a value is outside its allowed range — most commonly from infinite recursion (stack overflow) or invalid array/string sizes.
JavaScript intermediate
✓ schema.org compliant