Coder Social home page Coder Social logo

certificationy-cli's Introduction

Certificationy

This is provides a complete system to build multiple choice question system. This is useful for any company that need to test an applicant, or to make a certification website/training tool.

Join the chat at https://gitter.im/certificationy/certificationy SensioLabsInsight

How to use it?

Inside any PHP application

As usual, use composer to install the library:

composer require "certificationy/certificationy"

Then, you need to load questions using a loader: for now only PhpArray and Yaml loaders are provided, but thanks to the Loader interface you can create your owns.

For instance, let's say you have created a Yaml file with some few questions:

# question.yaml
category: basics
questions:
    -
        question: '2 + 2 = ?'
        answers:
            - {value: 4, correct: true}
            - {value: 3, correct: false}
            - {value: 2, correct: false}

Then you can do:

<?php
use Certificationy\Loaders\YamlLoader;

$loader = new YamlLoader(['path/to/question.yaml']);
$questions = $loader->load(1, []); // (nbQuestions, fromCategories)
$loader->categories(); // ['basics']

$set = Set::create($questions);

Then, for each question you can set user answers (as answers can be multiple):

$set->setUserAnswers(0, [4]); // (questionIndex, [values])

At every moment, you can get the correct and wrong answers (non answered questions are wrong).

$set->getCorrectAnswers();
$set->getWrongAnswers();

CLI tool

A CLI tool is available under the following repository: http://www.github.com/certificationy/certificationy-cli.

Please, help us to complete our official packs of questions!

You can submit PR with your own questions into the packs located under the Certificationy organization.

We provide packs for both PHP5 and Symfony certifications.

More we will have questions, the more powerful will be this tool!

certificationy-cli's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

certificationy-cli's Issues

Class not found

Hi, just starting using this tools for testing my skills and found a bug after the installation (correctly installed, just for precision) :

[Symfony\Component\Debug\Exception\FatalThrowableError]  
  Class 'Certificationy\Certification\Loader' not found  

The composer install was good, I've PHP on 7.1 version and I'm launching the tools on Mac.

Any idea of the reason why this bug ?

Thanks :)

Attach the phar file to the release.

As a final user I just want to use the application, not compile to use it. Just attach .phar at the release tag on github can be usefull for these users.

Wrong answer value from choice list

When answering a question, some times the app takes the wrong answer value from a given list.

Example:
When answer N° 2 is submitted, the app takes anwser N° 0 .

image

ANSI coloring is broken after first answer

I'm using windows, powershell, php 7.2, latest master of this repo

First question is displayed with proper colored text, but after first letter shell codes are shown instead of coloring

image

PHP Fatal error: Cannot access self:: when no class scope is active

Hi all,

When I tried to run the "certificationy.php" I have got this error message:

Executed command:
php certificationy.php

Error message:
PHP Fatal error: Cannot access self:: when no class scope is active in .../certificationy-cli/certificationy.php on line 25
Any help will be appreciated?
Thank you,

Values ignored

Not sure if the bug is reproducable, however I am always getting null as an answer. While debugging I came to ChoiceQuestion Class from the Console Component. There in line 165

$multiselectChoices[] = $choices[(string) $result];

Always returns null. Can anyone confirm this issue?
I used a fresh clone from master and its dependencies from composer.json

Here is my composer.lock

{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
        "This file is @generated automatically"
    ],
    "hash": "1bc00b7910b4102099426839dbd35848",
    "packages": [
        {
            "name": "certificationy/certificationy",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/certificationy/certificationy.git",
                "reference": "a4d11e8cda73939d0d231e10d191b0c5466e75a3"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/certificationy/certificationy/zipball/a4d11e8cda73939d0d231e10d191b0c5466e75a3",
                "reference": "a4d11e8cda73939d0d231e10d191b0c5466e75a3",
                "shasum": ""
            },
            "require": {
                "php": ">=5.4",
                "symfony/console": ">=2.5",
                "symfony/finder": ">=2.5",
                "symfony/yaml": ">=2.5"
            },
            "require-dev": {
                "certificationy/symfony-pack": "dev-master",
                "phpunit/phpunit": "~4.1"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Certificationy\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Vincent Composieux",
                    "email": "[email protected]"
                },
                {
                    "name": "Luis Cordova",
                    "email": "[email protected]"
                }
            ],
            "description": "A library to train on Symfony certification",
            "homepage": "http://github.com/certificationy/certificationy",
            "keywords": [
                "certification",
                "exam",
                "symfony",
                "test"
            ],
            "time": "2015-02-09 17:53:39"
        },
        {
            "name": "certificationy/php-pack",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/certificationy/php-pack.git",
                "reference": "524e065c98ed57d7de3088354ee92be0dd32e232"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/certificationy/php-pack/zipball/524e065c98ed57d7de3088354ee92be0dd32e232",
                "reference": "524e065c98ed57d7de3088354ee92be0dd32e232",
                "shasum": ""
            },
            "type": "certificationy-pack",
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mickaël Andrieu",
                    "email": "[email protected]"
                }
            ],
            "description": "A series of questions to prepare for the Zend PHP5.5 certification",
            "homepage": "http://github.com/mickaelandrieu/php-pack",
            "keywords": [
                "certification",
                "exam",
                "php5.5",
                "test",
                "zend"
            ],
            "time": "2015-03-16 20:56:22"
        },
        {
            "name": "certificationy/symfony-pack",
            "version": "dev-master",
            "source": {
                "type": "git",
                "url": "https://github.com/certificationy/symfony-pack.git",
                "reference": "6caafd24104c898f27a46d2335cb8f20131d1bd2"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/certificationy/symfony-pack/zipball/6caafd24104c898f27a46d2335cb8f20131d1bd2",
                "reference": "6caafd24104c898f27a46d2335cb8f20131d1bd2",
                "shasum": ""
            },
            "type": "certificationy-pack",
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mickaël Andrieu",
                    "email": "[email protected]"
                }
            ],
            "description": "A series of questions to prepare for the certification Symfony2",
            "homepage": "http://github.com/certificationy/symfony-pack",
            "keywords": [
                "certification",
                "exam",
                "symfony",
                "test"
            ],
            "time": "2015-04-27 21:29:30"
        },
        {
            "name": "herrera-io/json",
            "version": "1.0.3",
            "source": {
                "type": "git",
                "url": "https://github.com/kherge-abandoned/php-json.git",
                "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/kherge-abandoned/php-json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1",
                "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1",
                "shasum": ""
            },
            "require": {
                "ext-json": "*",
                "justinrainbow/json-schema": ">=1.0,<2.0-dev",
                "php": ">=5.3.3",
                "seld/jsonlint": ">=1.0,<2.0-dev"
            },
            "require-dev": {
                "herrera-io/phpunit-test-case": "1.*",
                "mikey179/vfsstream": "1.1.0",
                "phpunit/phpunit": "3.7.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "files": [
                    "src/lib/json_version.php"
                ],
                "psr-0": {
                    "Herrera\\Json": "src/lib"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kevin Herrera",
                    "email": "[email protected]",
                    "homepage": "http://kevin.herrera.io"
                }
            ],
            "description": "A library for simplifying JSON linting and validation.",
            "homepage": "http://herrera-io.github.com/php-json",
            "keywords": [
                "json",
                "lint",
                "schema",
                "validate"
            ],
            "time": "2013-10-30 16:51:34"
        },
        {
            "name": "herrera-io/phar-update",
            "version": "1.0.3",
            "source": {
                "type": "git",
                "url": "https://github.com/kherge-abandoned/php-phar-update.git",
                "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b",
                "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b",
                "shasum": ""
            },
            "require": {
                "herrera-io/json": "1.*",
                "kherge/version": "1.*",
                "php": ">=5.3.3"
            },
            "require-dev": {
                "herrera-io/phpunit-test-case": "1.*",
                "mikey179/vfsstream": "1.1.0",
                "phpunit/phpunit": "3.7.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "files": [
                    "src/lib/constants.php"
                ],
                "psr-0": {
                    "Herrera\\Phar\\Update": "src/lib"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kevin Herrera",
                    "email": "[email protected]",
                    "homepage": "http://kevin.herrera.io"
                }
            ],
            "description": "A library for self-updating Phars.",
            "homepage": "http://herrera-io.github.com/php-phar-update",
            "keywords": [
                "phar",
                "update"
            ],
            "time": "2013-10-30 17:23:01"
        },
        {
            "name": "justinrainbow/json-schema",
            "version": "1.4.4",
            "source": {
                "type": "git",
                "url": "https://github.com/justinrainbow/json-schema.git",
                "reference": "8dc9b9d85ab639ca60ab4608b34c1279d6ae7bce"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/8dc9b9d85ab639ca60ab4608b34c1279d6ae7bce",
                "reference": "8dc9b9d85ab639ca60ab4608b34c1279d6ae7bce",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.2"
            },
            "require-dev": {
                "json-schema/json-schema-test-suite": "1.1.0",
                "phpdocumentor/phpdocumentor": "~2",
                "phpunit/phpunit": "~3.7"
            },
            "bin": [
                "bin/validate-json"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "JsonSchema": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Bruno Prieto Reis",
                    "email": "[email protected]"
                },
                {
                    "name": "Justin Rainbow",
                    "email": "[email protected]"
                },
                {
                    "name": "Igor Wiedler",
                    "email": "[email protected]"
                },
                {
                    "name": "Robert Schönthal",
                    "email": "[email protected]"
                }
            ],
            "description": "A library to validate a json schema.",
            "homepage": "https://github.com/justinrainbow/json-schema",
            "keywords": [
                "json",
                "schema"
            ],
            "time": "2015-07-14 16:29:50"
        },
        {
            "name": "kherge/amend",
            "version": "3.0.2",
            "source": {
                "type": "git",
                "url": "https://github.com/kherge/php-amend.git",
                "reference": "69e72cd9c4a23aad91d33afe927589ebcbeaaa67"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/kherge/php-amend/zipball/69e72cd9c4a23aad91d33afe927589ebcbeaaa67",
                "reference": "69e72cd9c4a23aad91d33afe927589ebcbeaaa67",
                "shasum": ""
            },
            "require": {
                "herrera-io/phar-update": "~1.0",
                "php": ">=5.3.3",
                "symfony/console": "~2.1"
            },
            "require-dev": {
                "herrera-io/box": "~1.0",
                "herrera-io/phpunit-test-case": "1.*",
                "phpunit/phpunit": "3.7.*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.0-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "KevinGH\\Amend": "src/lib"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kevin Herrera",
                    "email": "[email protected]",
                    "homepage": "http://kevin.herrera.io/",
                    "role": "Developer"
                }
            ],
            "description": "Integrates Phar Update to Symfony Console.",
            "homepage": "http://kherge.github.com/Amend",
            "keywords": [
                "console",
                "phar",
                "update"
            ],
            "time": "2013-03-20 20:22:14"
        },
        {
            "name": "kherge/version",
            "version": "1.0.1",
            "source": {
                "type": "git",
                "url": "https://github.com/kherge-abandoned/Version.git",
                "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/kherge-abandoned/Version/zipball/f07cf83f8ce533be8f93d2893d96d674bbeb7e30",
                "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "KevinGH\\Version": "src/lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Kevin Herrera",
                    "email": "[email protected]"
                }
            ],
            "description": "A parsing and comparison library for semantic versioning.",
            "homepage": "http://github.com/kherge/Version",
            "time": "2012-08-16 17:13:03"
        },
        {
            "name": "seld/jsonlint",
            "version": "1.3.1",
            "source": {
                "type": "git",
                "url": "https://github.com/Seldaek/jsonlint.git",
                "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/863ae85c6d3ef60ca49cb12bd051c4a0648c40c4",
                "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "bin": [
                "bin/jsonlint"
            ],
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Seld\\JsonLint\\": "src/Seld/JsonLint/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jordi Boggiano",
                    "email": "[email protected]",
                    "homepage": "http://seld.be"
                }
            ],
            "description": "JSON Linter",
            "keywords": [
                "json",
                "linter",
                "parser",
                "validator"
            ],
            "time": "2015-01-04 21:18:15"
        },
        {
            "name": "symfony/console",
            "version": "v2.7.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/Console.git",
                "reference": "8cf484449130cabfd98dcb4694ca9945802a21ed"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/Console/zipball/8cf484449130cabfd98dcb4694ca9945802a21ed",
                "reference": "8cf484449130cabfd98dcb4694ca9945802a21ed",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.9"
            },
            "require-dev": {
                "psr/log": "~1.0",
                "symfony/event-dispatcher": "~2.1",
                "symfony/phpunit-bridge": "~2.7",
                "symfony/process": "~2.1"
            },
            "suggest": {
                "psr/log": "For using the console logger",
                "symfony/event-dispatcher": "",
                "symfony/process": ""
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.7-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Console\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "[email protected]"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Console Component",
            "homepage": "https://symfony.com",
            "time": "2015-07-09 16:07:40"
        },
        {
            "name": "symfony/finder",
            "version": "v2.7.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/Finder.git",
                "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/Finder/zipball/ae0f363277485094edc04c9f3cbe595b183b78e4",
                "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.9"
            },
            "require-dev": {
                "symfony/phpunit-bridge": "~2.7"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.7-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Finder\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "[email protected]"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Finder Component",
            "homepage": "https://symfony.com",
            "time": "2015-07-09 16:07:40"
        },
        {
            "name": "symfony/yaml",
            "version": "v2.7.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/Yaml.git",
                "reference": "4bfbe0ed3909bfddd75b70c094391ec1f142f860"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/Yaml/zipball/4bfbe0ed3909bfddd75b70c094391ec1f142f860",
                "reference": "4bfbe0ed3909bfddd75b70c094391ec1f142f860",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.9"
            },
            "require-dev": {
                "symfony/phpunit-bridge": "~2.7"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.7-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Yaml\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "[email protected]"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony Yaml Component",
            "homepage": "https://symfony.com",
            "time": "2015-07-01 11:25:50"
        }
    ],
    "packages-dev": [
        {
            "name": "doctrine/instantiator",
            "version": "1.0.5",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/instantiator.git",
                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3,<8.0-DEV"
            },
            "require-dev": {
                "athletic/athletic": "~0.1.8",
                "ext-pdo": "*",
                "ext-phar": "*",
                "phpunit/phpunit": "~4.0",
                "squizlabs/php_codesniffer": "~2.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Marco Pivetta",
                    "email": "[email protected]",
                    "homepage": "http://ocramius.github.com/"
                }
            ],
            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
            "homepage": "https://github.com/doctrine/instantiator",
            "keywords": [
                "constructor",
                "instantiate"
            ],
            "time": "2015-06-14 21:17:01"
        },
        {
            "name": "phpdocumentor/reflection-docblock",
            "version": "2.0.4",
            "source": {
                "type": "git",
                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.0"
            },
            "suggest": {
                "dflydev/markdown": "~1.0",
                "erusev/parsedown": "~1.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "phpDocumentor": [
                        "src/"
                    ]
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mike van Riel",
                    "email": "[email protected]"
                }
            ],
            "time": "2015-02-03 12:10:50"
        },
        {
            "name": "phpspec/prophecy",
            "version": "v1.4.1",
            "source": {
                "type": "git",
                "url": "https://github.com/phpspec/prophecy.git",
                "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
                "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
                "shasum": ""
            },
            "require": {
                "doctrine/instantiator": "^1.0.2",
                "phpdocumentor/reflection-docblock": "~2.0",
                "sebastian/comparator": "~1.1"
            },
            "require-dev": {
                "phpspec/phpspec": "~2.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Prophecy\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Konstantin Kudryashov",
                    "email": "[email protected]",
                    "homepage": "http://everzet.com"
                },
                {
                    "name": "Marcello Duarte",
                    "email": "[email protected]"
                }
            ],
            "description": "Highly opinionated mocking framework for PHP 5.3+",
            "homepage": "https://github.com/phpspec/prophecy",
            "keywords": [
                "Double",
                "Dummy",
                "fake",
                "mock",
                "spy",
                "stub"
            ],
            "time": "2015-04-27 22:15:08"
        },
        {
            "name": "phpunit/php-code-coverage",
            "version": "2.1.8",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
                "reference": "6044546998c7627ab997501a3d0db972b3db9790"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6044546998c7627ab997501a3d0db972b3db9790",
                "reference": "6044546998c7627ab997501a3d0db972b3db9790",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3",
                "phpunit/php-file-iterator": "~1.3",
                "phpunit/php-text-template": "~1.2",
                "phpunit/php-token-stream": "~1.3",
                "sebastian/environment": "~1.0",
                "sebastian/version": "~1.0"
            },
            "require-dev": {
                "ext-xdebug": ">=2.1.4",
                "phpunit/phpunit": "~4"
            },
            "suggest": {
                "ext-dom": "*",
                "ext-xdebug": ">=2.2.1",
                "ext-xmlwriter": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.1.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
            "keywords": [
                "coverage",
                "testing",
                "xunit"
            ],
            "time": "2015-07-13 11:25:58"
        },
        {
            "name": "phpunit/php-file-iterator",
            "version": "1.4.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
                "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
                "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
            "keywords": [
                "filesystem",
                "iterator"
            ],
            "time": "2015-04-02 05:19:05"
        },
        {
            "name": "phpunit/php-text-template",
            "version": "1.2.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-text-template.git",
                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "Simple template engine.",
            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
            "keywords": [
                "template"
            ],
            "time": "2015-06-21 13:50:34"
        },
        {
            "name": "phpunit/php-timer",
            "version": "1.0.6",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-timer.git",
                "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d",
                "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "Utility class for timing",
            "homepage": "https://github.com/sebastianbergmann/php-timer/",
            "keywords": [
                "timer"
            ],
            "time": "2015-06-13 07:35:30"
        },
        {
            "name": "phpunit/php-token-stream",
            "version": "1.4.3",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
                "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
                "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
                "shasum": ""
            },
            "require": {
                "ext-tokenizer": "*",
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.4-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                }
            ],
            "description": "Wrapper around PHP's tokenizer extension.",
            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
            "keywords": [
                "tokenizer"
            ],
            "time": "2015-06-19 03:43:16"
        },
        {
            "name": "phpunit/phpunit",
            "version": "4.7.7",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/phpunit.git",
                "reference": "9b97f9d807b862c2de2a36e86690000801c85724"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9b97f9d807b862c2de2a36e86690000801c85724",
                "reference": "9b97f9d807b862c2de2a36e86690000801c85724",
                "shasum": ""
            },
            "require": {
                "ext-dom": "*",
                "ext-json": "*",
                "ext-pcre": "*",
                "ext-reflection": "*",
                "ext-spl": "*",
                "php": ">=5.3.3",
                "phpspec/prophecy": "~1.3,>=1.3.1",
                "phpunit/php-code-coverage": "~2.1",
                "phpunit/php-file-iterator": "~1.4",
                "phpunit/php-text-template": "~1.2",
                "phpunit/php-timer": ">=1.0.6",
                "phpunit/phpunit-mock-objects": "~2.3",
                "sebastian/comparator": "~1.1",
                "sebastian/diff": "~1.2",
                "sebastian/environment": "~1.2",
                "sebastian/exporter": "~1.2",
                "sebastian/global-state": "~1.0",
                "sebastian/version": "~1.0",
                "symfony/yaml": "~2.1|~3.0"
            },
            "suggest": {
                "phpunit/php-invoker": "~1.1"
            },
            "bin": [
                "phpunit"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "4.7.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "The PHP Unit Testing framework.",
            "homepage": "https://phpunit.de/",
            "keywords": [
                "phpunit",
                "testing",
                "xunit"
            ],
            "time": "2015-07-13 11:28:34"
        },
        {
            "name": "phpunit/phpunit-mock-objects",
            "version": "2.3.5",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
                "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/1c330b1b6e1ea8fd15f2fbea46770576e366855c",
                "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c",
                "shasum": ""
            },
            "require": {
                "doctrine/instantiator": "~1.0,>=1.0.2",
                "php": ">=5.3.3",
                "phpunit/php-text-template": "~1.2"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.4"
            },
            "suggest": {
                "ext-soap": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.3.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "Mock Object library for PHPUnit",
            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
            "keywords": [
                "mock",
                "xunit"
            ],
            "time": "2015-07-04 05:41:32"
        },
        {
            "name": "sebastian/comparator",
            "version": "1.1.1",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/comparator.git",
                "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
                "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3",
                "sebastian/diff": "~1.2",
                "sebastian/exporter": "~1.2"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Jeff Welch",
                    "email": "[email protected]"
                },
                {
                    "name": "Volker Dusch",
                    "email": "[email protected]"
                },
                {
                    "name": "Bernhard Schussek",
                    "email": "[email protected]"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                }
            ],
            "description": "Provides the functionality to compare PHP values for equality",
            "homepage": "http://www.github.com/sebastianbergmann/comparator",
            "keywords": [
                "comparator",
                "compare",
                "equality"
            ],
            "time": "2015-01-29 16:28:08"
        },
        {
            "name": "sebastian/diff",
            "version": "1.3.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/diff.git",
                "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
                "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.3-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Kore Nordmann",
                    "email": "[email protected]"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                }
            ],
            "description": "Diff implementation",
            "homepage": "http://www.github.com/sebastianbergmann/diff",
            "keywords": [
                "diff"
            ],
            "time": "2015-02-22 15:13:53"
        },
        {
            "name": "sebastian/environment",
            "version": "1.2.2",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/environment.git",
                "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
                "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.3.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                }
            ],
            "description": "Provides functionality to handle HHVM/PHP environments",
            "homepage": "http://www.github.com/sebastianbergmann/environment",
            "keywords": [
                "Xdebug",
                "environment",
                "hhvm"
            ],
            "time": "2015-01-01 10:01:08"
        },
        {
            "name": "sebastian/exporter",
            "version": "1.2.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/exporter.git",
                "reference": "84839970d05254c73cde183a721c7af13aede943"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
                "reference": "84839970d05254c73cde183a721c7af13aede943",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3",
                "sebastian/recursion-context": "~1.0"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.2.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Jeff Welch",
                    "email": "[email protected]"
                },
                {
                    "name": "Volker Dusch",
                    "email": "[email protected]"
                },
                {
                    "name": "Bernhard Schussek",
                    "email": "[email protected]"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                },
                {
                    "name": "Adam Harvey",
                    "email": "[email protected]"
                }
            ],
            "description": "Provides the functionality to export PHP variables for visualization",
            "homepage": "http://www.github.com/sebastianbergmann/exporter",
            "keywords": [
                "export",
                "exporter"
            ],
            "time": "2015-01-27 07:23:06"
        },
        {
            "name": "sebastian/global-state",
            "version": "1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/global-state.git",
                "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
                "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.2"
            },
            "suggest": {
                "ext-uopz": "*"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                }
            ],
            "description": "Snapshotting of global state",
            "homepage": "http://www.github.com/sebastianbergmann/global-state",
            "keywords": [
                "global state"
            ],
            "time": "2014-10-06 09:23:50"
        },
        {
            "name": "sebastian/recursion-context",
            "version": "1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/recursion-context.git",
                "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
                "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.4"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Jeff Welch",
                    "email": "[email protected]"
                },
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]"
                },
                {
                    "name": "Adam Harvey",
                    "email": "[email protected]"
                }
            ],
            "description": "Provides functionality to recursively process PHP variables",
            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
            "time": "2015-01-24 09:48:32"
        },
        {
            "name": "sebastian/version",
            "version": "1.0.6",
            "source": {
                "type": "git",
                "url": "https://github.com/sebastianbergmann/version.git",
                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
                "shasum": ""
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "src/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Sebastian Bergmann",
                    "email": "[email protected]",
                    "role": "lead"
                }
            ],
            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
            "homepage": "https://github.com/sebastianbergmann/version",
            "time": "2015-06-21 13:59:46"
        }
    ],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": {
        "certificationy/certificationy": 20,
        "certificationy/symfony-pack": 20,
        "certificationy/php-pack": 20
    },
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": {
        "php": ">=5.3.3"
    },
    "platform-dev": []
}

Package hirak/prestissimo at version ^0.3 has a PHP requirement incompatible with your PHP version, PHP extensions and Composer version

After clone the repo and execute

docker compose up

I get the error:

Package hirak/prestissimo at version ^0.3 has a PHP requirement incompatible with your PHP version, PHP extensions and Composer version

Spliting the composer instructions and comment prestissimo, It works well

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
### RUN composer global require "hirak/prestissimo:0.3" --prefer-dist --no-progress --optimize-autoloader --classmap-authoritative
RUN composer clear-cache

option show-multiple-choice wrong interpreted

It looks like the option --show-multiple-choice is wrongly used.
2 things :

  1. The default value is true, so this option is not useful, maybe it should be replaced by --hide-multiple-choice and just detect if the option has been set without looking for its value.
  2. No matter the value you set to this option, it will do the opposite of what is intended. Because the value is passed as a string, the test $showMultipleChoice === true ? is always wrong cause of the type. So if i try to write --show-multiple-choice=true (or any other value btw), i won't have the multiple choice precision.

2 ideas to resolve this :

  1. Set default value at false, and just detect if the option is passed, not his value.
  2. Correct the test by removing the type test (== true instead of === true).
  3. Replace this option by --hide-multiple-choice and just detect if the option is passed too.

I personnally think the idea n°3 is the best, because this option will be useful only for people who needs to add some difficulty in their practice. Most of the people wants to have this precision, and requiring this option is annoying.

Download ready .phar and self-update

Hello, thanks for your app. I prepare PR that provide self-update packet. Read more about publish .phar here manifest-publisher. If you accept this PR, you should build .phar and attach file for each release, and change manifest link in file config.yml

As a result for users.

Installation and update

curl -O http://composieux.fr/certificationy.phar
php certificationy.phar self-update

No questions are selected

Here is what I do:

git clone [email protected]:certificationy/certificationy-cli.git
cd certificationy-cli/
composer install

php certificationy.php start
Starting a new set of 0 questions (available questions: 274)

php certificationy.php start --number=10                                                            
Starting a new set of 0 questions (available questions: 274)

php -v
PHP 7.0.18-0ubuntu0.17.04.1 (cli) (built: Apr 26 2017 23:59:48) ( NTS )

"None of the above" answer misplaced

In many questions, the answers "All of the above" and "None of the above" are misplaces. Sometimes above the other questions, sometimes below. They should always be the last ones.

Is it extendable?

I found that two path is hardcoded in config.yml.
Is there any way to add my own categories with own q/a?

"s\b" disappeared in console output

Hi.

Question #8 [PHP] If function foo() is defined in the namespace myapp\utils\bar and your code is in namespace myapp, what is the correct way to import the bar namespace so you can use the foo() function?
This question IS NOT multiple choice.
[0] use myapp\utilar <------------------------------------------
oo
[1] use myapp\utilar <------------------------------------------
[2] use bar
[3] use utilar

Box Project domain is expired

The domain of the box project expired and someone grabbed it.

The current recommended way to install cerficationy still uses the domain. This can lead to potential malicious code being downloaded and executed.

Recommended fix: use composer to install

Wrong question count

Start command gives question count more than actual questions exist.

$ php certificationy.php start --number 1000
Starting a new set of 252 questions (available questions: 425)
$ grep "\-$" vendor/certificationy/*/data/* | wc -l
252

Incorrect Yaml::parse usage

While running php certificationy.php on ((v1.2.0)) branch got errors:

PHP Warning:  Illegal string offset 'manifest_uri' in /home/piotras/www/certificationy-cli/certificationy.php on line 28
PHP Stack trace:
PHP   1. {main}() /home/piotras/www/certificationy-cli/certificationy.php:0
Starting a new set of 20 questions (available questions: 418)
Question #1 [Bundles] Using Config component, which of these configuration node types are available?
This question IS multiple choice.

StartCommand : Failed to open stream: No such file or directory

Hi,

I wanted to try your training app. Using composer, I just ran the commands and start it.

This is more information about my environment :

PHP 7.4.16 (cli) (built: Mar  4 2021 20:52:51) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.16, Copyright (c), by Zend Technologies

Also, this is the stack trace :

MacBook-Pro-de-Julien:certificationy-cli juliengidel$ php certificationy.php start --number=3
PHP Warning:  file_get_contents(): Filename cannot be empty in /Users/juliengidel/Documents/Programmation/certificationy-cli/src/Command/StartCommand.php on line 63

Warning: file_get_contents(): Filename cannot be empty in /Users/juliengidel/Documents/Programmation/certificationy-cli/src/Command/StartCommand.php on line 63
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Certificationy\Loaders\YamlLoader::__construct() must be of the type array, null given, called in /Users/juliengidel/Documents/Programmation/certificationy-cli/src/Command/StartCommand.php on line 66 and defined in /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/certificationy/certificationy/src/Loaders/YamlLoader.php:35
Stack trace:
#0 /Users/juliengidel/Documents/Programmation/certificationy-cli/src/Command/StartCommand.php(66): Certificationy\Loaders\YamlLoader->__construct(NULL)
#1 /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/symfony/console/Command/Command.php(299): Certificationy\Cli\Command\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#2 /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/symfony/console/Application.php(978): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInpu in /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/certificationy/certificationy/src/Loaders/YamlLoader.php on line 35

Fatal error: Uncaught TypeError: Argument 1 passed to Certificationy\Loaders\YamlLoader::__construct() must be of the type array, null given, called in /Users/juliengidel/Documents/Programmation/certificationy-cli/src/Command/StartCommand.php on line 66 and defined in /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/certificationy/certificationy/src/Loaders/YamlLoader.php:35
Stack trace:
#0 /Users/juliengidel/Documents/Programmation/certificationy-cli/src/Command/StartCommand.php(66): Certificationy\Loaders\YamlLoader->__construct(NULL)
#1 /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/symfony/console/Command/Command.php(299): Certificationy\Cli\Command\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#2 /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/symfony/console/Application.php(978): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInpu in /Users/juliengidel/Documents/Programmation/certificationy-cli/vendor/certificationy/certificationy/src/Loaders/YamlLoader.php on line 35

I solved the issue by using this path function in StartCommand.php :

protected function path(string $config = null): string
{
      $defaultConfig = dirname(__DIR__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'config.yml';

      return file_exists($config) ? $config : $defaultConfig;
}

and modified start command beginning :

protected function execute(InputInterface $input, OutputInterface $output): int
{
        $config = $this->path($input->getOption('config'));
        ...
}

The problem is that the code doesn't test if the file exists and it's not sure that the string file path is not empty.

Sorry for not making a PR for that, I don't really have much time to and hope you'll excuse me.
If this is not a so blocking issue, I will be able to do one mid-week in answer to this issue.

Bye ! 😄

Update to certificationy 2?

It's time to think about certificationy cli v2 :)

I will complete this issue with ideas asap, if you have some don't hesitate to comment :)

Have a nice day

Error in certificationy.php

Fatal error: Cannot access self:: when no class scope is active in /Users/chris/learn/certificationy-cli/certificationy.php on line 25

with php 5.6

Start fail

Hi,

I just try you'r awesome tool with simple make start. Unfortunately, run the certification tool fail :

bash-5.1# php certificationy.php

In Parser.php line 358:

  Duplicate key "question" detected at line 121 (near "            5 PHP EVOL I").


start [--number [NUMBER]] [-l|--list] [--training] [--hide-multiple-choice] [-c|--config [CONFIG]] [--] [<categories>...]

Due to this file : vendor/certificationy/php-pack/data/strings-patterns.yml

I see this in composer.json : certificationy/php-pack": "^1.4", and it's true, the file is fucked => https://github.com/certificationy/php-pack/blob/v1.4/data/strings-patterns.yml#L117

So, this need an update (new php-pack release), and a composer update.

I can help if needed :)

certificationy not registering my answers

When I answer a question, the answer is not registered (blank).
Output:
Your answer: (blank)

So when I'm finished, all the answers are wrong (even though I gave a few correct answers).

Anyone know how I can fix this problem ?

Cli tool is now broken

I'm getting an error when running php certificationy.php
"Class 'Certificationy\Certification\Loader' not found"

Reason: class was removed in the following commit
certificationy/certificationy@d6edea3

Possible fix: replace "dev-master" by release version number in composer.json
Something like this: "certificationy/certificationy": "~1.4"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.