Co vše použít, pokud chci vyzkoušet jen jednu komponentu?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
medhi
Generous Backer | 255
+
0
-

Ahoj,
chci začít pomalu s Nette, a to tím, že bych použil Laděnku u stávajícího projektu (není v Nette). Musím pro tento účel nahrávat na produkční verzi všechny soubory a složky Nette (nebo celý nette kompakt) či stačí pouze nějaké soubory a složky obsluhující Laděnku?

Možná s tím souvisí i otázka: Není zbytečné natahovat celý nette-kompakt jenom kvůli využití jedné komponenty?

Děkuji

pmg
Člen | 372
+
0
-

Vítej, medhi! Zrovna Laděnka je přizpůsobena tak, aby byla použitelná samostatně. Potřeba jsou tyto soubory:

  • Debug.templates/
  • Debug.php
  • Framework.php
  • exceptions.php
  • compatibility.php

Při samostatném použití jiné části je kompaktní verze asi nejlepším řešením. Nabízelo by se možná vytvořit generátor verzí s možností výběru komponent, ale kompletní kompaktní verze je velice malá a nejspíš by se už stejně výrazněji nezmenšila.

pmg
Člen | 372
+
0
-
include dirname(__FILE__) . '/libs/Debug.php';

Debug::enable();

// ekvivalent (log bude v adresáři s prvním spuštěným skriptem)
Debug::enable(E_ALL | E_STRICT, 'php_error.log');

// alternativně (log umístěn relativně k souboru s tímto kódem)
Debug::enable(E_ALL | E_STRICT, dirname(__FILE__) . '/logs/php_error.log', 'zraly@blueboard.cz');

// test
throw new Exception;

Logování chyb, Nette\Debug.

medhi
Generous Backer | 255
+
0
-

Perfektní, děkuji za vyčerpávající odpověď.

David Grudl
Nette Core | 8147
+
0
-

Dokonce lze použít https://files.nette.org/NDebug.zip, ale aktualizuji to jen málo často.

medhi
Generous Backer | 255
+
0
-

Tak při napsání throw new Exception; mi Laděnka naskočí, ale nenaskočí například při klasické fatal error, je to tak v pořádku?

o5
Člen | 416
+
0
-

IMO je to tim, ze u php se nedaji odchytit takoveto chyby?

Editoval o5 (1. 4. 2009 14:08)

Jod
Člen | 701
+
0
-

Fataly sa bohužiaľ zatiaľ nedajú odchytávať :(

David Grudl
Nette Core | 8147
+
0
-

Nette se alespoň snaží některé fataly „překonvertovat“ na výjimky, například volání neexistující metody objektu (pokud je potomek Nette\Object) nebo předání parametru, který neodpovádí typehintu.

pmg
Člen | 372
+
0
-

revizi 253 došlo k úpravě parametrů metody Debug::enable.

aDAm
Člen | 2
+
0
-

Dobrý den,
zkusil jsem nahodit laděnku na můj aktuální projekt (není na nette) ale mám problém. Vypisuje mi to STRICT a NOTICE zprávy a toto bych chtěl nezobrazovat. Neví někdo jak na to?

Laděnku zapínám takto:

include IPATH_BASE . DS .'administrator'. DS .'libraries'. DS .'debug'. DS .'Debug.php';

// Logovani chby
Debug::enable( Debug::DETECT, IPATH_BASE . DS .'logs'. DS .'php_error.log', 'info@example.cz' );
//Debug::enable ( E_NOTICE, IPATH_BASE . DS .'logs'. DS .'php_error.log', 'info@example.cz' );

Debug::$strictMode = FALSE;
vlki
Člen | 218
+
0
-

Myslím, že Nette se snaží o trochu jiný přístup. Mělo by programátora naučit dobrým mravům. A mezi těmi, alespoň v kontextu PHP, je fakt, aby aplikace byla napsaná čistě a nevyhazovala jakékoli chyby. Mimochodem, chyby úrovně E_NOTICE jsou většinou nejdůležitější.

Nastavení error_reporting je tedy nastaveno natvrdo.

Osobně se mi ještě nikdy nestalo, abych musel něco udělat tak, že to bude vždy vyhazovat chybku. Vždy to jde nějak upravit nebo alespoň potlačit.

aDAm
Člen | 2
+
0
-

Jasny ale ta aplikace je už poměrně rozsáhlá a proto eliminovat všechny tyto chyby je běh na dlouhou trať

vlki
Člen | 218
+
0
-

Tak to holt přenastavit error_reporting po tom, co to udělá laděnka.

Tzn.

Debug::enable();
error_reporting(E_ALL & ~E_NOTICE);

Je to už taková dost zoufalá možnost. A pokud by to laděnka vše logovala a někdo to postupně odvšivovával? No, každopádně hodně štěstí a ať je laděnka ku pomoci.