Ошибка при запуске сайта на OpenServer. Fatal error: Uncaught Error: Class 'getConnection' not found
У меня возникает ошибка . Она появляется при запуске сайта на OpenServer. Там указано что клас не найден.И нужен ли вообще этот класс?
Fatal error: Uncaught Error: Class 'getConnection' not found in D:\OpenServer\OpenServer\domains\Internetstor\models\Category.php:16 Stack trace: #0 D:\OpenServer\OpenServer\domains\Internetstor\controllers\SiteController.php(15): Category::getCategoriesList() #1 D:\OpenServer\OpenServer\domains\Internetstor\components\Router.php(80): SiteController->actionIndex() #2 D:\OpenServer\OpenServer\domains\Internetstor\index.php(18): Router->run() #3 {main} thrown in D:\OpenServer\OpenServer\domains\Internetstor\models\Category.php on line 16
Вот код Category:
<?php
/**
* Класс Category - модель для работы с категориями товаров
*/
class Category
{
/**
* Возвращает массив категорий для списка на сайте
* @return array <p>Массив с категориями</p>
*/
public static function getCategoriesList()
{
// Соединение с БД
$db = include getConnection::getConnection;
// Запрос к БД
$result = $db->query('SELECT id, name FROM category WHERE status = "1" ORDER BY sort_order, name ASC');
// Получение и возврат результатов
$i = 0;
$categoryList = array();
while ($row = $result->fetch()) {
$categoryList[$i]['id'] = $row['id'];
$categoryList[$i]['name'] = $row['name'];
$i++;
}
return $categoryList;
}
/**
* Возвращает массив категорий для списка в админпанели <br/>
* (при этом в результат попадают и включенные и выключенные категории)
* @return array <p>Массив категорий</p>
*/
public static function getCategoriesListAdmin()
{
// Соединение с БД
$db = Db::getConnection();
// Запрос к БД
$result = $db->query('SELECT id, name, sort_order, status FROM category ORDER BY sort_order ASC');
// Получение и возврат результатов
$categoryList = array();
$i = 0;
while ($row = $result->fetch()) {
$categoryList[$i]['id'] = $row['id'];
$categoryList[$i]['name'] = $row['name'];
$categoryList[$i]['sort_order'] = $row['sort_order'];
$categoryList[$i]['status'] = $row['status'];
$i++;
}
return $categoryList;
}
/**
* Удаляет категорию с заданным id
* @param integer $id
* @return boolean <p>Результат выполнения метода</p>
*/
public static function deleteCategoryById($id)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'DELETE FROM category WHERE id = :id';
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
return $result->execute();
}
/**
* Редактирование категории с заданным id
* @param integer $id <p>id категории</p>
* @param string $name <p>Название</p>
* @param integer $sortOrder <p>Порядковый номер</p>
* @param integer $status <p>Статус <i>(включено "1", выключено "0")</i></p>
* @return boolean <p>Результат выполнения метода</p>
*/
public static function updateCategoryById($id, $name, $sortOrder, $status)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = "UPDATE category
SET
name = :name,
sort_order = :sort_order,
status = :status
WHERE id = :id";
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
$result->bindParam(':name', $name, PDO::PARAM_STR);
$result->bindParam(':sort_order', $sortOrder, PDO::PARAM_INT);
$result->bindParam(':status', $status, PDO::PARAM_INT);
return $result->execute();
}
/**
* Возвращает категорию с указанным id
* @param integer $id <p>id категории</p>
* @return array <p>Массив с информацией о категории</p>
*/
public static function getCategoryById($id)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'SELECT * FROM category WHERE id = :id';
// Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
// Указываем, что хотим получить данные в виде массива
$result->setFetchMode(PDO::FETCH_ASSOC);
// Выполняем запрос
$result->execute();
// Возвращаем данные
return $result->fetch();
}
/**
* Возвращает текстое пояснение статуса для категории :<br/>
* <i>0 - Скрыта, 1 - Отображается</i>
* @param integer $status <p>Статус</p>
* @return string <p>Текстовое пояснение</p>
*/
public static function getStatusText($status)
{
switch ($status) {
case '1':
return 'Отображается';
break;
case '0':
return 'Скрыта';
break;
}
}
/**
* Добавляет новую категорию
* @param string $name <p>Название</p>
* @param integer $sortOrder <p>Порядковый номер</p>
* @param integer $status <p>Статус <i>(включено "1", выключено "0")</i></p>
* @return boolean <p>Результат добавления записи в таблицу</p>
*/
public static function createCategory($name, $sortOrder, $status)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'INSERT INTO category (name, sort_order, status) '
. 'VALUES (:name, :sort_order, :status)';
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':name', $name, PDO::PARAM_STR);
$result->bindParam(':sort_order', $sortOrder, PDO::PARAM_INT);
$result->bindParam(':status', $status, PDO::PARAM_INT);
return $result->execute();
}
}
Вот код getConection:
<?php
/**
*
*/
class getConnection
{
/**
* Устанавливает соединение с базой данных
* @return \PDO <p>Объект класса PDO для работы с БД</p>
*/
public static function getConnection()
{
// Получаем параметры подключения из файла
$paramsPath = ROOT . '/config/db_params.php';
$params = include($paramsPath);
// Устанавливаем соединение
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
$db = new PDO($dsn, $params['user'], $params['password']);
// Задаем кодировку
$db->exec("set names utf8");
return $db;
}
}
Ответы (1 шт):
Первое, что необходимо исправить - наименование методов и классов. Классы, по хорошему, именуются с большой буквы. Совпадений наименований классов, методов, свойств и атрибутов быть не должно.
У вас получается, что не подключаете файл самого класса getConection. Надо использовать подключение этого файла перед тем, как использовать его методы.
То есть, вам надо сделать require_once файла класса getConection, затем только вы можете использовать ваши конструкции.