Glossary
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
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
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
Abstracts the data persistence layer behind an interface, decoupling domain logic from database implementation details.
4mo ago
General intermediate
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
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