PHP is a server-side scripting language designed for the web. A request arrives, the interpreter executes a script, the script emits a response, and the process state is discarded — the share-nothing request lifecycle that makes PHP easy to scale horizontally and easy to reason about, because one bad request cannot corrupt the next. It is embedded in HTML by origin but almost never used that way now: modern applications route every request through a single front controller and treat templating as one layer among several.
The language has changed more in recent years than most people outside it realise. PHP 7 rewrote the engine for performance; PHP 8 added named arguments, constructor property promotion, union types, attributes, enums, readonly properties, the match expression, fibers and a JIT compiler. Alongside the language, Composer and the PSR standards turned a landscape of copy-pasted includes into an ecosystem with real dependency management, PSR-4 autoloading and interoperable interfaces. Static analysis with tools such as PHPStan and Psalm now catches whole classes of bug before the code runs.
This course is about the language and the craft around it rather than any single framework. It covers types, functions, arrays, objects and error handling; database access through PDO with prepared statements; session, cookie and form handling; the security issues that have historically bitten PHP applications and exactly how to close them; and how PHP actually runs in production under PHP-FPM with OPcache. Framework-specific work is a separate path — see the Laravel pages — but everything here is what makes that framework code make sense.
Why this skill matters now
PHP still serves a very large share of the web, and the gap between codebases written before and after PHP 7 is enormous. Organisations are carrying applications built on mysql_* calls, global state and manual includes, and they need engineers who can modernise them incrementally rather than propose a rewrite nobody will fund.
The language itself has caught up with expectations. Typed properties and parameters, enums, readonly classes and static analysis mean a modern PHP codebase can be checked and refactored with confidence in a way that simply was not possible a decade ago. Teams that adopt those tools ship fewer runtime surprises; teams that do not keep paying for them.
What employers actually look for is depth rather than syntax familiarity. Writing a page that echoes a query result is trivial. Writing code that is injection-proof by construction, handles errors and exceptions deliberately, manages dependencies with Composer, holds up under static analysis, and performs acceptably under PHP-FPM with OPcache tuned correctly — that is the skill that separates a maintainable codebase from a liability.