Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как грамотно инициализировать стандартные классы DLE 13?

Как грамотно инициализировать стандартные классы DLE 13?


     17.12.2019    db, tpl    Все вопросы » Общие вопросы по PHP    677

вопрос
Когда я пишу простую функцию, которая что-то берет из БД, затем оборачивает это в шаблон, а после всё это кэширует, как грамотно сделать так, чтобы стандартные классы DLE (mysql, template, funtions) работали внутри моей функции.


function match_block_by_matchid($match_id) {
    //подрубаем БД
    if(!$db) $db = new db();
    
   //чтобы не подключать весь конфиг
    $config['skin'] = "statdota";
   
    //подрубаем функции кэша
    require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php'));
    
    //подрубаем шаблоны
    if(!$tpl) {
        $tpl = new dle_template();
        $tpl->dir = ROOT_DIR . '/templates/' . $config['skin'];
    } //закрылся If
...
}


Это нормально каждую функцию открывать таким образом?
Также работает, если использовать глобалы в начале: global $tpl; global $db; но это вроде бы ещё хуже, прошу разъяснить новичку.

Ответил: LazyDev


Вы либо изучайте php либо не старайтесь писать самому вот это непонятное "что-то", потому что это даже не напишет человек который ознакомился с базовым синтаксисом php
function match_block_by_matchid($match_id) {
	global $db, $config;

	$tpl = new dle_template();
	$tpl->dir = TEMPLATE_DIR;
}

4 комментария

UsurpatorVaticana
Юзер

UsurpatorVaticana - 17 декабря 2019 11:31 -

Данная функция используется в modules/static.php

UsurpatorVaticana
Юзер

UsurpatorVaticana - 17 декабря 2019 12:00 -

LAZYDEV, почему global $gb это ок, а global $tpl не ок?
Почему $tpl = new dle_template(); это ок, а $db = new db(); это не ок?

dj-avtosh
PHP-developer

dj-avtosh - 17 декабря 2019 12:09 -

походу потому, что в $db уже есть объект, который нет смысла инициализировать вновь, да бы не сломать логику.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

LazyDev
PHP-developer

LazyDev - 17 декабря 2019 12:16 -

UsurpatorVaticana, что бы было меньше объяснять.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх