# Rasmus Lerdorf

> 1968– · Programmer, Creator of PHP
>
> **Recorded contribution:** Created PHP

## How to use this dossier

Read for a causal chain, not a hero story: inherited problem → contribution → mechanism → downstream capability → limit. Then close the page and complete the reconstruction exercise from memory.

## 1. Historical orientation

Rasmus Lerdorf created Personal Home Page tools in 1994 and released the source that evolved into PHP. The project moved server-side page generation into a form accessible to Web authors, then became a community language and runtime powering a large portion of dynamic publishing. This contribution sits at the boundary between human intention and machine execution, where syntax is useful only when its static and runtime meanings are precise. The chronology is used causally: it connects the inherited constraint to an implementable mechanism and then to later reuse, instead of treating fame, job title, or eventual market success as the explanation.

## 2. The problem inherited

Early Web authors needed to process forms, access databases, and generate pages dynamically without building a server extension or standalone CGI program in a lower-level language for every task. Programmers needed a way to express structure without surrendering control of execution, interoperability, or performance; each new abstraction also risked hiding cost or creating ambiguous behavior.

## 3. The central contribution

PHP embeds or invokes server-side code during a request, reads request and session state, calls libraries or databases, and emits an HTTP response—often HTML—through a shared-nothing execution model. The durable contribution is the combination of language rule, implementation strategy, and community practice—not the surface notation alone.

## 4. Reconstruct the mechanism

1. Receive one HTTP request and parse its route, form, cookie, and uploaded data explicitly. Choose one source-level construct and state what program state it is meant to represent.
2. Execute server-side code that validates input and queries or updates durable state. Specify its syntax and the rule that decides whether a use is valid.
3. Encode output safely into the correct HTML, URL, SQL, or JSON context. Lower the construct through compiler, interpreter, runtime, or foreign-interface steps until concrete machine actions are visible.
4. Run concurrent requests and test injection, session fixation, configuration drift, version compatibility, and long-lived application structure. Construct an invalid, ambiguous, unsafe, or unexpectedly expensive program and explain which layer must reject or manage it.

## 5. What changed downstream

- PHP lowered barriers to dynamic Web development and enabled systems including WordPress, MediaWiki, and major early sites.
- Later languages and tools could reuse the design choice, react against it, or make its trade-off explicit in a different type or runtime system.
- The transferable first-principles lesson is to separate the artifact named in “Created PHP” from the mechanism, surrounding institution, and evidence that allowed later systems to depend on it.

## 6. Attribution, limits, and uncertainty

- Lerdorf initiated PHP but openly described not designing every later language feature; Andi Gutmans, Zeev Suraski, core contributors, frameworks, hosts, and users transformed it. Ease of entry can coexist with insecure code and inconsistent historical APIs.
- Language histories are collective: specifications, implementers, library authors, educators, and users determine what a creator’s initial design becomes.
- The subject is living or the registry has no death year; current titles and institutional affiliations are treated as dated snapshots verified on 2026-08-09, not permanent identity claims.

## 7. Reconstruction lab

Build one PHP form that writes and reads a database using parameterized queries and escaped output. Attack a deliberately unsafe version, then document every trust boundary in the fixed path. Include a tiny program, an execution trace or lowering sketch, one rejected program, and a note about performance or safety.

## 8. Evidence trail

- [History of PHP](https://www.php.net/manual/en/history.php.php) — PHP Documentation Group
- [Rasmus Lerdorf](https://en.wikipedia.org/wiki/Rasmus_Lerdorf) — Wikipedia contributors · overview and bibliography
- [Rasmus Lerdorf structured identity record](https://www.wikidata.org/wiki/Q92768) — Wikidata contributors · CC0

---

*Research checked 2026-08-09. Dates, roles, and claims about living people are historical snapshots. Linked sources remain the authority; this dossier is original instructional synthesis.*
