1. Go to this page and download the library: Download rmzamora/zenddiagnostics library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rmzamora / zenddiagnostics example snippets
// run_diagnostics.php
use ZendDiagnostics\Check;
use ZendDiagnostics\Runner\Runner;
use ZendDiagnostics\Runner\Reporter\BasicConsole;
use ZendDiagnostics\Check\DiskFree;
;
// Add console reporter
$runner->addReporter(new BasicConsole(80, true));
// Run all checks
$runner->run();
$runner = new Runner();
$checkSpace = new Check\DiskFree('/tmp', 100000000);
$checkTemp = new Check\DirWritable('/tmp');
$runner->addCheck($checkSpace);
$runner->addCheck($checkTemp);
// Run all checks
$results = $runner->run();
echo "Number of successful tests: " . $results->getSuccessCount() . "\n";
echo "Number of failed tests: " . $results->getFailureCount() . "\n";
if ($results[$checkSpace] instanceof \ZendDiagnostics\Result\FailureInterface) {
echo "Oooops! We're running out of space on temp.\n";
}
if ($results[$checkTemp] instanceof \ZendDiagnostics\Result\FailureInterface) {
echo "It seems that /tmp is not writable - this is a serious problem!\n";
}
interface CheckInterface
{
/**
* @return ResultInterface
*/
public function check();
/**
* Return a label describing this test instance.
*
* @return string
*/
public function getLabel();
}
namespace MyApp\Diagnostics\Check;
use ZendDiagnostics\Check\CheckInterface;
use ZendDiagnostics\Result\Success;
use ZendDiagnostics\Result\Failure;
class TimezoneSetToUTC implements CheckInterface
{
public function check()
{
$tz = date_default_timezone_get();
if ($tz == 'UTC') {
return new Success('Default timezone is UTC');
} else {
return new Failure('Default timezone is not UTC! It is actually ' . $tz);
}
}
public function getLabel()
{
return 'Check if PHP default timezone is set to UTC';
}
}
interface ReporterInterface
{
public function onStart(ArrayObject $checks, $runnerConfig);
public function onBeforeRun(Check $check);
public function onAfterRun(Check $check, Result $result);
public function onStop(ResultsCollection $results);
public function onFinish(ResultsCollection $results);
}
use ZendDiagnostics\Check\ApcFragmentation;
// Display a warning with fragmentation > 50% and failure when above 90%
$fragmentation = new ApcFragmentation(50, 90);
use ZendDiagnostics\Check\ApcMemory;
// Display a warning with memory usage is above 70% and a failure above 90%
$checkFreeMemory = new ApcMemory(70, 90);
use ZendDiagnostics\Check\Callback;
use ZendDiagnostics\Result\Success;
use ZendDiagnostics\Result\Failure;
$checkDbFile = new Callback(function(){
$path = __DIR__ . '/data/db.sqlite';
if(is_file($path) && is_readable($path) && filesize($path)) {
return new Success('Db file is ok');
} else {
return new Failure('There is something wrong with the db file');
}
});
use ZendDiagnostics\Check\ClassExists;
$checkLuaClass = new ClassExists('Lua');
$checkRbacClasses = new ClassExists(array(
'ZfcRbac\Module',
'ZfcRbac\Controller\Plugin\IsGranted'
));
use ZendDiagnostics\Check\CpuPerformance;
$checkMinCPUSpeed = new CpuPerformance(0.5); // at least 50% of EC2 micro instance
use ZendDiagnostics\Check\DirReadable;
$checkPublic = new DirReadable('public/');
$checkAssets = new DirReadable(array(
__DIR__ . '/assets/img',
__DIR__ . '/assets/js'
));
use ZendDiagnostics\Check\DirWritable;
$checkTemporary = new DirWritable('/tmp');
$checkAssets = new DirWritable(array(
__DIR__ . '/assets/customImages',
__DIR__ . '/assets/customJs',
__DIR__ . '/assets/uploads',
));
use ZendDiagnostics\Check\DiskFree;
$tempHasAtLeast100Megs = new DiskFree('100MB', '/tmp');
$homeHasAtLeast1TB = new DiskFree('1TiB', '/home');
$dataHasAtLeast900Bytes = new DiskFree(900, __DIR__ . '/data/');
use ZendDiagnostics\Check\ExtensionLoaded;
$checkMbstring = new ExtensionLoaded('mbstring');
$checkCompression = new ExtensionLoaded(array(
'rar',
'bzip2',
'zip'
));
use ZendDiagnostics\Check\HttpService;
// Try to connect to google.com
$checkGoogle = new HttpService('www.google.com');
// Check port 8080 on localhost
$checkLocal = new HttpService('127.0.0.1', 8080);
// Check that the page exists (response code must equal 200)
$checkPage = new HttpService('www.example.com', 80, '/some/page.html', 200);
// Check page content
$checkPageContent = new HttpService(
'www.example.com',
80,
'/some/page.html',
200,
'<title>Hello World</title>'
);
use ZendDiagnostics\Check\GuzzleHttpService;
// Try to connect to google.com
$checkGoogle = new GuzzleHttpService('www.google.com');
// Check port 8080 on localhost
$checkLocal = new GuzzleHttpService('127.0.0.1:8080');
// Check that the page exists (response code must equal 200)
$checkPage = new GuzzleHttpService('www.example.com/some/page.html');
// Check page content
$checkPageContent = new GuzzleHttpService(
'www.example.com/some/page.html',
array(),
array(),
200,
'<title>Hello World</title>'
);
// Check that the post request returns the content
$checkPageContent = new GuzzleHttpService(
'www.example.com/user/update',
array(),
array(),
200,
'{"status":"success"}',
'POST',
array("post_field" => "post_value")
);
use ZendDiagnostics\Check\Memcache;
$checkLocal = new Memcache('127.0.0.1'); // default port
$checkBackup = new Memcache('10.0.30.40', 11212);
use ZendDiagnostics\Check\PhpVersion;
$ '<');
use ZendDiagnostics\Check\PhpFlag;
// This check will fail if use_only_cookies is not enabled
$sessionOnlyUsesCookies = new PhpFlag('session.use_only_cookies', true);
// This check will fail if safe_mode has been enabled
$noSafeMode = new PhpFlag('safe_mode', false);
// The following will fail if any of the flags is enabled
$check = new PhpFlag(array(
'expose_php',
'ignore_user_abort',
'html_errors'
), false);
use ZendDiagnostics\Check\ProcessRunning;
$checkApache = new ProcessRunning('httpd');
$checkProcess1000 = new ProcessRunning(1000);
use ZendDiagnostics\Check\RabbitMQ;
$rabbitMQCheck = new RabbitMQ('localhost', 5672, 'guest', 'guest', '/');
use ZendDiagnostics\Check\Redis;
$redisCheck = new Redis('localhost', 6379, 'secret');
use ZendDiagnostics\Check\SecurityAdvisory;
// Warn about any packages that might have security vulnerabilities and poser.lock');
use ZendDiagnostics\Check\StreamWrapperExists;
$checkOGGStream = new StreamWrapperExists('ogg');
$checkCompression = new StreamWrapperExists(array(
'zlib',
'bzip2',
'zip'
));
use Doctrine\DBAL\Migrations\Configuration\Configuration;
use Doctrine\ORM\EntityManager;
use ZendDiagnostics\Check\DoctrineMigration;
$em = EntityManager::create(/** config */);
$migrationConfig = new Configuration($em);
$check = new DoctrineMigration($migrationConfig);
use ZendDiagnostics\Check\IniFile;
$checkIniFile = new IniFile('/my/path/to/file.ini');
$checkIniFile = new IniFile(['file1.ini', 'file2.ini', '...']);
use ZendDiagnostics\Check\JsonFile;
$checkJsonFile = new JsonFile('/my/path/to/file.json');
$checkJsonFile = new JsonFile(['file1.json', 'file2.json', '...']);
use ZendDiagnostics\Check\XmlFile;
$checkXmlFile = new XmlFile('/my/path/to/file.xml');
$checkXmlFile = new XmlFile(['file1.xml', 'file2.xml', '...']);
use ZendDiagnostics\Check\YamlFile;
$checkYamlFile = new YamlFile('/my/path/to/file.yml');
$checkYamlFile = new YamlFile(['file1.yml', 'file2.yml', '...']);