The package allows to check if a certain set of defined requirements is met.
Requirements checker could be used either from web or from command line. Create requirements.php
:
<?php
require_once('/path/to/requirements/RequirementsChecker.php');
$config = array(
array(
'name' => 'PHP version',
'mandatory' => true,
'condition' => version_compare(PHP_VERSION, '7.2.0', '>='),
'by' => '<a href="http://www.yiiframework.com">Yii Framework</a>',
'memo' => 'PHP 7.2.0 or higher is required.',
),
array(
'name' => 'PDO MySQL extension',
'mandatory' => false,
'condition' => extension_loaded('pdo_mysql'),
'by' => 'All DB-related classes',
'memo' => 'Required for MySQL database.',
),
array(
'name' => 'Intl extension',
'mandatory' => false,
'condition' => $this->checkPhpExtensionVersion('intl', '1.0.2', '>='),
'by' => '<a href="https://secure.php.net/manual/en/book.intl.php">Internationalization</a> support',
'memo' => 'PHP Intl extension 1.0.2 or higher is required.'
),
);
$requirementsChecker = new RequirementsChecker();
$result = $requirementsChecker
->checkYii()
->check($config)
->getResult();
$requirementsChecker->render();
exit($result['summary']['errors'] === 0 ? 0 : 1);
Now it could be either put to webroot or executed as php requirements.php
.
Note that the code above uses PHP 4. That is done on purpose so the checker could be executed in a very old setups and tell that upgrade should be done.
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
The package tests are checked with Infection mutation framework. To run it:
./vendor/bin/infection
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
The Yii Requirements Checker is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.