PHPackages                             raffaelecarelle/symfony-certification-simulator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. raffaelecarelle/symfony-certification-simulator

ActiveProject

raffaelecarelle/symfony-certification-simulator
===============================================

UNOFFICIAL Symfony Certification Simulator with Exercises

0.0.1(5mo ago)30GPL-3.0-or-laterPHPPHP &gt;=8.2CI failing

Since Nov 19Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/raffaelecarelle/symfony-certification-simulator)[ Packagist](https://packagist.org/packages/raffaelecarelle/symfony-certification-simulator)[ RSS](/packages/raffaelecarelle-symfony-certification-simulator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (5)Versions (2)Used By (0)

Symfony Certification Simulator
===============================

[](#symfony-certification-simulator)

An interactive CLI tool to practice for the Symfony and PHP certification exams.

Overview
--------

[](#overview)

A lightweight, customizable exam simulator built with Symfony Console components. Practice with separate PHP and Symfony question banks, configure question counts, and get instant feedback with links to official documentation.

### Goals

[](#goals)

- Simulate realistic certification exam conditions with customizable question counts
- Support questions with single or multiple correct answers
- Provide immediate feedback with references to official PHP and Symfony documentation
- Help candidates practice under exam-like conditions with randomized answer ordering

### What this project includes

[](#what-this-project-includes)

- **Question bank**: Separate PHP and Symfony question sets in `data/` directory
- **Documentation links**: Automatic linking to official PHP and Symfony documentation
- **Exam simulator**: Customizable exam sessions with configurable question counts
- **Interactive CLI**: Built with Symfony Console components for a smooth user experience

### Key features

[](#key-features)

- **Customizable exam sessions**: Configure the number of PHP and Symfony questions (default: 50 each)
- **Flexible question filtering**: Run PHP-only, Symfony-only, or mixed question sets
- **Multiple-choice support**: Questions with single or multiple correct answers
- **Answer randomization**: Answer order is shuffled for each question to prevent pattern memorization
- **Interactive CLI interface**: Progress bar, formatted output, and easy answer selection
- **Instant feedback**: Immediate correct/incorrect indication after each answer
- **Documentation links**: Direct links to official PHP and Symfony documentation for incorrect answers
- **Score summary**: Final results table showing percentage, correct, and incorrect answer counts

Architecture
------------

[](#architecture)

The project is organized into the following components:

### Core Classes (`src/`)

[](#core-classes-src)

- **`ExamCommand`**: Symfony Console command handling user interaction, question presentation, and answer collection
- **`ExamFactory`**: Factory class responsible for creating exam instances with randomized questions based on provided options
- **`Exam`**: Value object representing an exam session with scoring and percentage calculation methods
- **`Question`**: Value object representing a single question with answers, correct answers, and documentation links
- **`QuestionProvider`**: Service for loading PHP and Symfony questions from data files

### Entry Point (`bin/`)

[](#entry-point-bin)

- **`exam-start`**: CLI entry point that bootstraps the Symfony Console application

### Question Banks (`data/`)

[](#question-banks-data)

- **`php-questions.php`**: Array of PHP questions covering OOP, SPL, type system, and more
- **`sf-questions.php`**: Array of Symfony framework questions

Requirements
------------

[](#requirements)

- PHP &gt;= 8.2
- Standard PHP extensions (no additional special requirements)
- Composer

Installation
------------

[](#installation)

### Quick Start (Recommended)

[](#quick-start-recommended)

Download the latest PHAR release:

```
wget https://github.com/raffaelecarelle/symfony-certification-simulator/releases/latest/download/symfony-certification.phar
chmod +x symfony-certification.phar
./symfony-certification.phar
```

Or install globally:

```
sudo mv symfony-certification.phar /usr/local/bin/symfony-certification
symfony-certification
```

### Usage (CLI)

[](#usage-cli)

```
# Run with default settings (50 PHP + 50 Symfony questions)
./symfony-certification.phar

# Run with only PHP questions
./symfony-certification.phar --php-only

# Run with only Symfony questions
./symfony-certification.phar --sf-only

# Custom number of questions
./symfony-certification.phar --php-questions=30 --sf-questions=70
```

### Command options

[](#command-options)

The exam simulator supports several options to customize your practice session:

- `--php-only` or `-p`: Run the exam with only PHP questions
- `--sf-only` or `-S`: Run the exam with only Symfony questions
- `--php-questions=N`: Set the number of PHP questions (default: 50)
- `--sf-questions=N`: Set the number of Symfony questions (default: 50)

**Examples:**

```
# Run exam with only PHP questions
php bin/exam-start --php-only

# Run exam with only Symfony questions
php bin/exam-start --sf-only

# Custom number of questions
php bin/exam-start --php-questions=30 --sf-questions=70

# Combined: only PHP questions with custom count
php bin/exam-start --php-only --php-questions=25
```

### Usage notes

[](#usage-notes)

- Some questions have multiple correct answers: select them by separating with a comma (e.g., "A,C").
- When the answer is incorrect, a link to the corresponding official documentation (if available) will be shown.
- At the end of the exam, a table with percentage, number of correct and incorrect answers is displayed.

Development: tests and code quality
-----------------------------------

[](#development-tests-and-code-quality)

- Run tests (PHPUnit): ```
    ./vendor/bin/phpunit -c phpunit.xml.dist
    ```
- Static analysis (PHPStan): ```
    ./vendor/bin/phpstan analyse -c phpstan.neon
    ```
- Automated refactoring (Rector): ```
    ./vendor/bin/rector
    ```
- Formatting and style fixes (PHP-CS-Fixer): ```
    ./vendor/bin/php-cs-fixer fix --diff
    ```

Contributing
------------

[](#contributing)

### For Contributors

[](#for-contributors)

If you want to contribute to the project, you'll need to clone the repository:

```
git clone https://github.com/raffaelecarelle/symfony-certification-simulator.git
cd symfony-certification-simulator
composer install
```

### Contribution Guidelines

[](#contribution-guidelines)

Contributions of any kind are welcome. Suggested guidelines:

- Open an issue to propose new questions or to fix existing ones.
- For PRs that modify the question bank, keep explanations concise and include a reference (sf-doc/php-doc) when possible.
- Run tests and quality tools locally before opening the PR:
    - `./vendor/bin/phpunit -c phpunit.xml.dist`
    - `./vendor/bin/phpstan analyse -c phpstan.neon`
    - `./vendor/bin/php-cs-fixer fix --diff`
- Stick to PHP &gt;= 8.2 and the project's current standards.

License
-------

[](#license)

- This project is released under the GPL-3.0-or-later license. See the [LICENSE](LICENSE) file.

Disclaimer
----------

[](#disclaimer)

- UNOFFICIAL project, not affiliated with Symfony or SensioLabs. Trademarks and logos are the property of their respective owners.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance70

Regular maintenance activity

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

174d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/470d7f2b64c268ccd0d73d1d19da604f5049ffdc717170df28ac460d34b8a327?d=identicon)[raffaelecarelle](/maintainers/raffaelecarelle)

---

Top Contributors

[![raffaelecarelle](https://avatars.githubusercontent.com/u/15015792?v=4)](https://github.com/raffaelecarelle "raffaelecarelle (60 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/raffaelecarelle-symfony-certification-simulator/health.svg)

```
[![Health](https://phpackages.com/badges/raffaelecarelle-symfony-certification-simulator/health.svg)](https://phpackages.com/packages/raffaelecarelle-symfony-certification-simulator)
```

###  Alternatives

[phan/phan

A static analyzer for PHP

5.6k11.2M1.1k](/packages/phan-phan)[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[php-soap/wsdl

Deals with WSDLs

173.5M12](/packages/php-soap-wsdl)[php-soap/wsdl-reader

A WSDL reader in PHP

212.3M9](/packages/php-soap-wsdl-reader)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
