záhadná chyba, která se projevuje jen doma, v práci kód běží bez chyby

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Mirek
Člen | 86
+
0
-

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)

Jan Mikeš
Člen | 771
+
+1
-

Cache? Rozdílná data v DB? Když porovnáš oba screeny, v primary máš jednou stat a jednou stat_id zkontroluj cizí a primární klíče v obou databázích.

Mirek
Člen | 86
+
0
-

Jo, ten primární klíč jsem opravil (navíc nikde se s ním nepracuje, takže by ani ten rozdíl neměl vadit) a chyby se nezbavil, jinak cache v adresáři temp jsem mazal a to taky nepomohlo.

Jan Mikeš
Člen | 771
+
0
-

Máš možnost to vyzkoušet na totožných databázích? Může tam být někde drobná chybička, která se lehce přehlédne.

Mirek
Člen | 86
+
0
-

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

CZechBoY
Člen | 3608
+
0
-

Ty data v obou databazich jsou teda stejna?
Systemy jsou stejne? Verze databazovych serveru?

Mirek
Člen | 86
+
0
-

Data v databázích jsou stejná, domcí MySQL je 5.5, v práci mám 5.6.10, ale jak už jsem psal, tak jsem použil i přímo tu domácí databázi a s ní ta „pracovní“ instalace fungovala i když už obsahovala totožné verze Apache a PHP jako mám ta domácí