silverstripe-environmentcheck/src/Checks/DatabaseCheck.php

48 lines
1.1 KiB
PHP
Raw Normal View History

<?php
namespace SilverStripe\EnvironmentCheck\Checks;
use SilverStripe\EnvironmentCheck\EnvironmentCheck;
use SilverStripe\ORM\DB;
/**
* Check that the connection to the database is working, by ensuring that the table exists and that
2015-09-10 23:13:48 +02:00
* the table contains some records.
*
* @package environmentcheck
*/
2015-11-21 07:18:35 +01:00
class DatabaseCheck implements EnvironmentCheck
{
protected $checkTable;
2015-09-10 23:13:48 +02:00
2015-11-21 07:18:35 +01:00
/**
* By default, Member will be checked.
*
* @param string $checkTable
*/
public function __construct($checkTable = 'Member')
2015-11-21 07:18:35 +01:00
{
$this->checkTable = $checkTable;
}
2015-11-21 07:18:35 +01:00
/**
* {@inheritDoc}
2015-11-21 07:18:35 +01:00
*
* @return array
*/
public function check()
{
if (!DB::get_schema()->hasTable($this->checkTable)) {
2015-11-21 07:18:35 +01:00
return array(EnvironmentCheck::ERROR, "$this->checkTable not present in the database");
}
2015-11-21 07:18:35 +01:00
$count = DB::query("SELECT COUNT(*) FROM \"$this->checkTable\"")->value();
2015-11-21 07:18:35 +01:00
if ($count > 0) {
return array(EnvironmentCheck::OK, '');
2015-11-21 07:18:35 +01:00
}
return array(EnvironmentCheck::WARNING, "$this->checkTable queried ok but has no records");
2015-11-21 07:18:35 +01:00
}
2015-09-10 23:13:48 +02:00
}