Class Debugger Not Found hlásí laděnka
- jf71
- Člen | 11
Předem prosím omluvte totálního newbieho.
Laděnka hlásí chybějící Debugger.
bootstrap.php
// Enable Nette Debugger for error visualisation & logging
Debugger::$logDirectory = __DIR__ . '/../log';
Debugger::$strictMode = TRUE;
Debugger::enable(Debugger::DEVELOPMENT);
a v presenteru mám
public function renderShow($args = array())
{
Debugger::dump($args);
}
Nakopněte mě prosím někdo.
Díky.
- JuniorJR
- Člen | 181
vypadá to, že s OOP začínáš, koukni sem
buď připiš někam (nejlépe) na začátek souboru
use \Nette\Diagnostics\Debugger; // EDIT - úvodní lomítko se prý nedoporučuje :)
a nebo pro každé volání laděnky použij volání třídy včetně namespace
public function renderShow($args = array())
{
\Nette\Diagnostics\Debugger::dump($args);
}
hAssassin napsal(a):
pouzivej !funkci!
dump()
a ono se to uvnitr nejak prelozi spravne :)
viz. zdr. kód souboru loader.php, dokumentační poznámka hovoří za vše:
/**
* Nette\Diagnostics\Debugger::dump shortcut.
*/
function dump($var)
{
foreach (func_get_args() as $arg) Nette\Diagnostics\Debugger::dump($arg);
return $var;
}
čili je to úplně nejjednodušší způsob, jak dumpovat
Editoval JuniorJR (15. 11. 2011 20:50)
- jf71
- Člen | 11
Ještě jednou děkuji za odpovědi.
Jsme z toho teda lehce zmatenej. Po přidání use debugger
funguje.
Ale mám asi podobnej problém: v app/models mám Record.php a v něm třídu RecordModel.
class RecordModel
{
public static function fetchAll($country)
{
return dibi::query('SELECT * FROM ...');
}
}
Když v RecordPresenter zavolám
$this->template->countries = RecordModel::fetchAll($c);
laděnka zahlásí Class ‚RecordModel‘ not found.. Zase mi chybí nějakej use?
- Aurielle
- Člen | 1281
\RecordModel
, pokud nemá namespace. Pokud by byl RecordModel ve
stejném namespace jako RecordPresenter, nemusíš žádné namespace či use
uvádět a tak, jak jsi to napsal, to pojede.
edit: Texy má evidentně problémy s kódem ** \ **
(bez mezer)
Editoval gmvasek (15. 11. 2011 22:06)
- jf71
- Člen | 11
Furt mi to hlásí stejnou věc. Class RecordModel not found.
app/presenters/RecordPresenter.php
<?php
use Nette\Diagnostics\Debugger;
/**
* Record presenter.
*
* @author John Doe
* @package MyApplication
*/
class RecordPresenter extends BasePresenter
{
public function renderDefault()
{
}
public function actionShow($id,$b,$c)
{
Debugger::dump($id);
$this->template->countries = \RecordModel::fetchAll($id,$b,$c);
$this->template->tour = $c;
}
public function renderShow()
{
}
}
a app/models/Record.php
class RecordModel
{
public static function fetchAll($country,$sex=2,$tour="tour")
{
return dibi::query('SELECT * FROM ...);
}
}
- daliborcaja
- Člen | 57
Pokud pro testování používáš normálí hosting a ne localhost svojeho pc tak doporučuji toto řešení:
// pole ip adres pro ktere je zapnuta ladenka
$devIps = array(
'77.48.33.xxx' // dalibor
);
Debugger::$logDirectory = __DIR__ . '/../log';
Debugger::$strictMode = TRUE;
Debugger::enable($devIps);
// Load configuration from config.neon file
$configurator = new Configurator;
$configurator->container->params['productionMode'] = Debugger::$productionMode;
$configurator->loadConfig(NULL);
Takhle to upravíš v bootstrap.php a pak si jen do toho pole přidáš ip počítačů pro které má být zapnut development režim.
Editoval daliborcaja (16. 11. 2011 19:17)