záhadná chyba, která se projevuje jen doma, v práci kód běží bez chyby
- Mirek
- Člen | 86
Doma se mi objevuje chyba Cannot read an undeclared property, přitom
v práci ten samý kód běží bez chyby.
Problém je s načítáním států. V basepresenteru mám :
/** @var \App\Model\StatRepository */
private $StatRepository;
public function injectStatRepository(\App\Model\StatRepository $StatRepository1)
{
$this->StatRepository = $StatRepository1;
}
protected function beforeRender()
{
$this->template->staty = $this->StatRepository->najdiVsechnyStaty();
parent::beforeRender();
}
třída StatRepository :
<?php
namespace App\Model;
use Nette;
class StatRepository
{
use Nette\SmartObject;
/** @var Nette\Database\Context */
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
/** @return Nette\Database\Table\Selection */
public function najdiVsechnyStaty()
{
return $this->database->table('tb_staty')->order('radit DESC, stat_nazev_mnozne ASC');
}
}
v config neon mám službu :
services:
- App\Model\StatRepository
A když si v práci vydumpuji proměnou $staty, tak vidím toto : http://nette.svrcek.cz/staty1.gif
A když totéž udělám doma, tak vidím toto: http://nette.svrcek.cz/staty.gif – rows a data jsou NULL,
zatímco v práci obsahují načtená data.
Tak jsem si řekl, že asi mám nějakou chybovou verzi, některé z aplikací
Apache, PHP, MySQL a doma jsem upgradoval na nejnovější verze Apache a
PHP – to nepomohlo. Tak jsem si přinesl domů instalaci z práce.
V prvním kroku jsem oživil přinesenou instalaci a stránky fungovaly bez
chyby. Pak jsem nahradil v této instalaci PHP tou nejnovější verzí, kterou
aktuálně používám doma a zase se chyba neprojevila.
V dalším kroku jsem nahradil Apache tou domácí nejnovější verzí a
stále se chyba neprojevila.
Tak jsem změnil i MySQL a použil tu domácí verzi a stále se chyba
neprojevila.
Takže z té původní instalace z práce mi nic nezbylo, přešel jsem tam na
stejný SW jako mám doma a chyba se neprojevila. Tak nerozumí tomu, proč
když použiju tu domácí instalaci, tak tam ta chyba je.
Mezi těmi dvama instalacemi jsou už jen drobné rozdíly v konfiguraci,
které nepovažuji za podstatné (trochu jinak jsou adresářové struktury, pak
např. php má trochu jiné limity na upload) a instalaci z práce spouštím
z příkazové řádky, zatímco domácí instalace mi běží jako
služba.
Napadá někoho, kde by mohl být zakopaný pes?
Editoval Mirek (22. 9. 2016 9:32)
- Mirek
- Člen | 86
Tak jsem psal Tak jsem změnil i MySQL a použil tu domácí verzi a stále se chyba neprojevila. což znamená, že jsem spustil službu té mé domácí databáze a použil přímo tu domácí, tedy pokud jsem k ní přistupoval z toto Apache co jsem si přinesl z práce (a fungovalo to i když jsem Apache i php nahradil tou domácí verzí), tak to fungovalo, když k ní přistupuji z té domácí verze Apache, tak mi to nefungovalo