Podivna chyba v sablone: Fatal error: Cannot call overloaded function for non-object

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

Ahoj, jiz podruhe se nam stala podivna chyba v sablone, ktera znefunkcnila dost zasadne web.
Zkusim sem vykopirovat patricnou cast error logu:

[2012-06-19 09-13-54] Fatal error: Cannot call overloaded function for non-object in .../_components.CommentsControl-likeLink.phtml-130e077e9e0ddc2c927976cac452ca23.php:43  @  ...  @@  exception-2012-03-17-06-28-56-53583baad18046882df58629eb028ac5.html
[2012-06-19 09-14-24] PHP Warning: Parameter 2 to ¨{Ø() expected to be a reference, value given in .../_components.CommentsControl-likeLink.phtml-130e077e9e0ddc2c927976cac452ca23.php:43  @  ...
[2012-06-19 09-14-56] Fatal error: Cannot call overloaded function for non-object in .../libs/Nette/Latte/Macros/UIMacros.php:498  @  ...  @@  exception-2012-03-19-06-26-15-f0368db33db04e3e1ad953944089fc74.html

Tyto tri chyby se nezavisle na sobe objevuji v error logu. A skript konci na fatal error.
Poznatky:

  1. chyba s UI macros nema nis spolecneho s tou chybou v sablone, ta se deje tehdy, kdyz se nepouzije ta sablona (aspon dle url to tak vypada).
  2. chyba se zacne dit naprosto nezavisle na zmene kodu!!! Vime jiste, ze nikdo nikde nic nemenil.
  3. k oprave chyby staci smazat POUZE temp ty jedny sablony likeLink.
  4. mam ladenku i temp te sablony, po porovnani nove sablony se krom dvou hashu tech funkcni nic nezmenilo, zkousel sem hledat stary hash, jestli tam neni kolize, ale nic…
  5. ten php warning opravu ma takovy paznaky. bohuzel k warningum nejsou zadny bluescreeny, tak nic moc nevim..

Jeste cast sablony, respektive ty radky, kde by to melo padat:

41: <span<?php echo ' id="' . $_control->getSnippetId('likeLink') . '"' ?>>
42: <?php if ($_l->extends) { ob_end_clean(); return Nette\Latte\Macros\CoreMacros::includeTemplate($_l->extends, get_defined_vars(), $template)->render(); }
43: call_user_func(reset($_l->blocks['_likeLink']), $_l, $template->getParameters())  ?></span>

Moc si nedelam nadeje, ze nekdo z takovyho mala informaci bude vedet, o co go, hlavne, nesetkal se s timto nekdo?

PHP 5.3.13, nette nejaky 2.1.

bojovyletoun
Člen | 667
+
0
-

Nepoužíváš Wincache,accelerator…?? Případně načítá skript velké množstí souborů? Mě např. tohle dělá kdyby sandbox: Samozřejmě to blbne jen na vhostech se zapnutou wincache

▼Compile Error Fatal error:
Cannot inherit previously-inherited or override constant NAME_SEPARATOR from interface
Kdyby\Doctrine\Forms\IObjectContainer in ...\Kdyby-sandbox\vendor\kdyby\cms\libs\Kdyby\Components\Grinder\CollectionContainer.php
on line 26

Editoval bojovyletoun (19. 6. 2012 16:16)

hrach
Člen | 1834
+
0
-

zadny win cache ani accelator.

hrach
Člen | 1834
+
0
-

Hm, tak to bude nejaky bug php a jeho zpracovani souboru. Aktualne se to stalo znovu (po treti) a restart apache pomohl. Sablony sem nechal stejny. Predpokladam, ze si teda php natahne soubor, nejak si ho „predzpracuje“? Nevim, kazdopadne zadny accelerator tam neni, je tam teda suhosin no… PHP 5.3.14.

hrach
Člen | 1834
+
0
-

Ovsem zajimavy je, ze se to dele porad v te stejne sablone. … :/

PetrP
Člen | 587
+
0
-

Btw vyřešil jsi to nějak?

Mám stejný problém php 5.4.13 a nette v2.0.6 (nemyslím že to z nette souvisí) je to na hostingu wedos.

Fatal error: Cannot call overloaded function for non-object in UIMacros.php:463

hrach
Člen | 1834
+
0
-

Hm, uz si to vubec nepamatuju, ale myslim, ze se to vyresilo samo, nejakym upgradem php. Ani si nepamatuju projekt, ale vypada to na signaly, a tam jsme pak urcite jeli na 5.4 a ted na 5.5 a myslim si, ze jsem to uz fakt ty dva roky nevidel…

Casper
Člen | 253
+
0
-

Tato chyba se mi nyní stává čím dál častěji u gridů (dělal mi to NiftyGrid a nyní i Grido), žádné jiné šablony toto nezpůsobují, takže předpokládám, že to nějak souvisí se snippety (v gridech je využívám nejvíce). Víte někdo jak toto řešit nebo co to způsobuje?

Nette 2.1.2, PHP 5.4.16, eAccelerator vypnutý

Editoval Casper (22. 4. 2014 11:51)

Casper
Člen | 253
+
0
-

Kdyby se s tím někdo setkal, tak přechodem na PHP 5.4.4–14+deb7u9 | Apache/2.2.22 (Debian) (Nette totožné) se to zřejmě vyřešilo.