Jumast
@Jumast
разработка сайтов - html/css/php/js

Как правильно вывести db на простом роутере?

Всем привет, сделал такой роутинг, работает без проблем.

/index.php
<?php

# Шапка
include('inc/head.php');

# Require Route Class
require 'route.php';

# Функция Route
$route = new Route();

# Меню профиля
$menu = include('inc/menu.php');

# Основные
$route->add("/",function(){include('pages/main.php');});

# Страницы юзерс и меню
$route->add('/users/acc',function(){$menu;include('pages/users/acc.php');}); // Профиль
$route->add('/users/acc2',function(){$menu;include('pages/users/acc2.php');}); // Профиль-2

# Сабмит
$route->submit();

print_r($route);

# Подвал
include('inc/foot.php');
?>

/route.php
<?php
class Route
{
	function add($r, callable $c)
	{
		$this->r[$r] = $c;
	}
	function submit()
	{
		$p = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : '/';
		$this->r[$p]();
	}
}
?>

/.htaccess
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php/$1 [QSA,L]


-----------------------------------
Вопрос как с базой работать? без объектов т.д.
db тут /class/db.class.php
------------------------------------
этот запрос делаю на странице /pages/index.php
# Статистика регистраций за 24 часа
$db->Query("SELECT COUNT(*) FROM db_stats_r24");
$stats_new = $db->FetchArray();

Выводит такую ошибку
Notice: Undefined variable: db in C:\OpenServer\domains\abc5\pages\_index.php on line 2

-----------------------

возникла такая мысль все это из-за $this -> в роуте что вместо нее ставить?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
glaphire
@glaphire Куратор тега PHP
PHP developer
Даже если $db объявлена и проинициализирована в /class/db.class.php, то здесь не видно никакого механизма или точки, которые подключают этот файл, чтобы переменная была видна в /pages/index.php. Сделайте require() этого файла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Jumast
@Jumast Автор вопроса
разработка сайтов - html/css/php/js
а чтобы класс бд не трогать, в каком месте роут поправить? чтобы там было не $this -> скорее всего из-за этого не хочет работать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы