Empty-web projekt, kde nastavit Debug mode Debugger::Development
- MilanL
- Člen | 7
Ahoj, mám tento problém s Tracy v návodech je spousta nastavení, ale není napsáno kde to nastavit, píše se jen obecně „co nejdříve“, když to dám řádku Debugger::enable(Debugger::Development) zkoušeno i s IP adresou do:
index.php hodí chybu Apache, error.log: Class „APP\Debugger“ not found – zde mě napadá, jestli bych neměl nejdříve vytvořit Debugger objekt.
HomePresenteru hodí chybu aplikace syntax error, unexpected identifier „Debugger“, expecting „function“ or „const“
Potřebuji to takto nastavit, z důvodu běhu na Linux Server edici pouze console režim.
- nightfish
- Člen | 519
@MilanL Ve standardním nette/web-project je to tak, že
index.php
volá Bootstrapper::boot()
, ve kterém se
nastavuje více věcí, včetně Tracy
. Viz https://github.com/…ootstrap.php#L17
Jinak k chybě Class „APP\Debugger“ not found – zde mě napadá, jestli bych neměl nejdříve vytvořit Debugger objekt.:
- Vidíš, že se hledá
APP\Debugger
, ty chceš\Tracy\Debugger
. - Třída
Tracy\Debugger
nemusí být ještě načtená – takže inicializaci Tracy chceš dělat až po nastavení autoloaderu (která se obvykle děje na řádku typurequire __DIR__ . '/vendor/autoload.php'
).
- MilanL
- Člen | 7
@nightfish to dle githubu v bootstrap.php jsem též zkoušel a nefungovalo to.
v indexu jsem to měl takto nevím jestli to nemělo být až někde mezi těmi původními řádky, za configuratorem nebo containerem
<?php
declare(strict_types=1);
// use Tracy\Debugger;
require __DIR__ . '/../vendor/autoload.php';
// Debugger::enable(Debugger::Development);
$configurator = App\Bootstrap::boot();
$container = $configurator->createContainer();
$application = $container->getByType(Nette\Application\Application::class);
$application->run();
Editoval MilanL (11. 8. 2023 13:48)
- Marek Bartoš
- Nette Blogger | 1281
Co znamená nefungovalo? Jestliže se snažíš v indexu povolit debugger a následně voláš bootstrap, tak v bootstrapu ti $configurator->enableTracy() zavolá totéž a původní volání přepíše.
Class „APP\Debugger“ not found
Chybějící use statement.
syntax error, unexpected identifier „Debugger“
Nevalidní php kód, bez kódu ti k tomu nikdo nic neřekne. Nejspíš by sis nejdřív měl projít, jak se vůbec píše PHP a používá Composer, jinak se budeš trápit s jakýmkoli frameworkem
- dakur
- Člen | 493
Je to popsané zde: https://doc.nette.org/…on/bootstrap#…
Debugger::enable(Debugger::Development)
je to stejné co
Debugger::enable(true)
, protože hodnota
Debugger::Development
je true
. Nejspíš ti chybělo
nad Debugger::enable()
ještě use Tracy\Debugger;
a/nebo jsi to volal před $configurator->enableTracy()
či
Bootstrap::boot()
.
Obecně však není tuto hodnotu dobrý nápad nastavovat natvrdo, pokud k tomu nemáš zvláštní důvod. Pak na to lehce zapomeneš a hops, každý si může v browseru přečíst tvoje credentials k databázi například, či další citlivé konfigurační údaje.
Proč to vlastně potřebuješ?
Editoval dakur (16. 8. 2023 9:06)
- MilanL
- Člen | 7
No chovalo se to jako by tam ta konstanta Debugger:Development nebyla nadefinovaná.
Produkční a vývojový server mám oddělený, web mám v omezené míře
zatím v procedurálním PHP, začínám s převodem na NETTE – snad se to
vyplatí.
Druhá varianta by byla pevná IP pracovního NTB, ale tu potřebuji občas
měnit, NTB slouží též k servisním účelům, kdy se musím připojit
s předem daným nastavením adres, navíc jsem někdy připojen kabelem jindy
WI-FI. Nejsnadnější vidím tu řádku s nastavením toho režimu hodit do
includovaného souboru a soubor umístit ve vyšší složce než jsou vlastní
stránky, která se při upgradu nebude měnit.
Další variantou je dle návodů na NETTE rozdělení do modulů – dle
přilášení a režimu uživatele, a nastavení toho develop režimu jen
v Admin modulu.
- Marek Bartoš
- Nette Blogger | 1281
setDebugMode(($_COOKIE['debug'] ?? null) === 'your_super_secret_value')
Nebo si debug mód zapni přes cookie.
Editoval Marek Bartoš (16. 8. 2023 11:23)