Skip to content

Repository files navigation

PHPrep — practice questions and mock exams for the PHP Certified Engineer certification

phprep.dev

qa License: MIT Node

Questions live as markdown files in the repository, everything runs in the browser, and all progress is stored in localStorage. There is no backend and no account, and nothing you do is ever sent anywhere — the only requests the app makes are for its own files. Use it at phprep.dev, or clone it, add your own questions, and study.

Features

Practice — immediate feedback and an explanation after every question. Drill by topic or by what you've not yet seen, with per-question mastery that accumulates across sessions. Runs are capped at 20 questions, drawn at random and reshuffled each time.

Exam — 70 questions under a 90-minute countdown that auto-submits at zero, with no feedback until you submit and flagging for questions to revisit. An in-progress exam survives a reload. Each attempt draws a fresh random 70 from the bank.

Progress — best and latest scores against the pass mark, a score trend across attempts, and a per-topic table putting practice mastery next to exam accuracy, weakest first.

Getting started

Nothing to install — the app is live at phprep.dev. Open it, pick Practice or Exam, and your progress saves to that browser. No account, and no sync between devices.

Running it locally

Only needed if you want to add questions or change the app.

Prerequisites: Node 24+. Run nvm use to pick up the exact version from .nvmrc — the lockfile is sensitive to the npm version bundled with Node, so a different Node 24 patch can make npm ci fail with Missing: @emnapi/... from lock file.

npm install
npm run dev

The dev server runs on http://localhost:3000.

Testing

npm test              # run once
npm run test:watch    # re-run on change
npm run test:coverage # with a v8 coverage report
npm test -- grading   # a single file or matching subset

Vitest with jsdom and Testing Library.

Where the questions come from

All 1000 questions were written for this repository. None are taken from the official practice exam or any other question bank — that material is copyrighted, and the scraped PHP quiz content floating around is mostly PHP 5/7-era and now factually wrong on 8.4. This project is not affiliated with or endorsed by Zend or Perforce, and these are not real exam questions; they target the published exam topics.

They were drafted with AI assistance, which is exactly why the validation below exists: the failure mode that matters here is not a typo, it is a fluent and confidently wrong answer.

How the answers were validated

PHP is executable, so most answers have an oracle. Where an answer follows from running code, the snippet was executed under php:8.4-cli before the question was written, and the marked option records what actually happened — output first, question second.

How Count What it means
Executed 939 The snippet was run on PHP 8.4 and the marked option is its real output
Documented 61 Not exercisable in a CLI container

Found a wrong answer or a misleading explanation? Run the snippet, then open an issue — see CONTRIBUTING.md.

Adding questions

Markdown files under src/questions/php-certified-engineer/<topic>/, glob-imported at build time.

Field Notes
id Required, unique and permanent. Suffix matches the filename, so arrays/8.md holds arrays-8.
topic One of the eleven below, spelled exactly. A typo silently creates a twelfth topic.
type single or multiple. Controls radio vs checkbox, and grading.
shuffle Optional, default true. Set false to pin option order.
topic: Directory
PHP Basics php-basics/
Functions functions/
Arrays arrays/
Strings and Patterns strings/
Data Format and Types types/
Object-Oriented Programming oop/
Error Handling error-handling/
Security security/
Web Features web-features/
Databases and SQL databases/
I/O io/

Contributing

Run npm run qa before opening a pull request. Everything else is in CONTRIBUTING.md.

Roadmap and changes

ROADMAP.md is what would most improve the project, in rough order of how much it would matter — nothing there is promised or scheduled. Released versions are in CHANGELOG.md.

License

MIT

About

1000 practice questions and mock exams for the PHP Certified Engineer certification.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages