OXID Community Forum

> German forum > Module > The script tried to execute a method or access a property of an incomplete object.
Login
FAQ Members List Calendar Search Today's Posts Mark Forums Read

Thread: The script tried to execute a method or access a property of an incomplete object.


Reply
 
Thread Tools Display Modes
#Top   #1  
Old 10-14-2009, 12:02 PM
ManuelR ManuelR is offline
Junior Member
Join Date: Oct 2008
Posts: 9
ManuelR is on a distinguished road
Post The script tried to execute a method or access a property of an incomplete object.

Ich eröffne diesen Thread primär als eigene Notiz, falls ich mal wieder über diesen Fehler stolper

Die komplette Fehlermeldung sieht ca. so aus:

Fatal error: oxcmp_basket::render() [<a href='function.oxcmp-basket-render'>function.oxcmp-basket-render</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;testbasket&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /htdocs/ttt/views/oxcmp_basket.php on line 61

Ursache des Problems ist die Reihenfolge, in der Module im Admin erweitert werden.
So kann dieser Fehler reproduziert werden, indem man oxbasketitem & oxbasket ableiten möchte und dabei oxbasketitem _vor_ oxbasket setzt, cookies löscht und ein Produkt in den Warenkorb legt:

oxbasketitem => test/testbasketitem
oxbasket => test/testbasket

wobei eine umgekehrte Reihenfolge funktioniert.

Also Fazit: bei irgendwelchen incomplete object-Fehlern die Reihenfolge der Ableitungseinträge der Module im Admin überprüfen und ggf. verändern.

Vielleicht hilft dieser Hinweis ja auch noch jemand anders.
Reply With Quote
#Top   #2  
Old 10-14-2009, 10:55 PM
MBa MBa is offline
Senior Member
Join Date: Jun 2009
Posts: 773
MBa is on a distinguished road
Default Re: The script tried to execute a method or access a property of an incomplete object.

Danke, ich hatte mal ein ähnliches Problem, konnte den Fehler aber nicht mehr reproduzieren.
__________________
Schöne Grüße/Regards,
Markus
www.datame.com


If the only tool you have is a hammer, you tend to see every problem as a nail.
Reply With Quote
#Top   #3  
Old 04-04-2010, 10:44 AM
avenger's Avatar
avenger avenger is offline
Senior Member
Join Date: May 2009
Posts: 2,083
avenger is on a distinguished road
Default AW: The script tried to execute a method or access a property of an incomplete object.

Quote:
Originally Posted by ManuelR View Post
oxbasketitem => test/testbasketitem
oxbasket => test/testbasket

wobei eine umgekehrte Reihenfolge funktioniert.

Also Fazit: bei irgendwelchen incomplete object-Fehlern die Reihenfolge der Ableitungseinträge der Module im Admin überprüfen und ggf. verändern.

Vielleicht hilft dieser Hinweis ja auch noch jemand anders.
Hat bei mir nicht geholfen...

Kann auch gar nicht helfen!

Weil der Ablauf so ist, dass beim Aktivieren einer Klasse nachgeschaut wird, ob in dieser Modul-Definitions-Struktur ein Overwrite-Modul für diese Klassen definiert ist.

D.h., dass die Reihenfolge der Aktivierung der Overwrite-Modul von der Reihenfolge der Aktivierung der Basisklassen bestimmt wird, und nicht von der Reihenfolge in der Moduldefinition....
__________________


Individuelle und hochwertige OXID 4 Templates und Shop-Erweiterungen gibt es bei http://www.powertemplate.de
  1. Dem Ingeniör ist nichts zu schwör (Daniel Düsentrieb, 1952)
  2. Geht nicht, gibt's nicht.
  3. Was nicht passt, wird passend gemacht
Weitere Informationen zum powertemplate.de Angebotsspektrum unter http://www.shopplaner.de
Reply With Quote
#Top   #4  
Old 04-04-2010, 11:26 AM
csimon csimon is offline
Senior Member
Join Date: Mar 2009
Location: Stade
Posts: 635
csimon is on a distinguished road
Default AW: The script tried to execute a method or access a property of an incomplete object.

immer cookies löschen damit die session definitiv weg ist. der basket ist nämlich in der session als objekt gespeichert.
__________________
Reply With Quote
#Top   #5  
Old 04-04-2010, 12:09 PM
avenger's Avatar
avenger avenger is offline
Senior Member
Join Date: May 2009
Posts: 2,083
avenger is on a distinguished road
Default AW: The script tried to execute a method or access a property of an incomplete object.

Quote:
Originally Posted by csimon View Post
immer cookies löschen damit die session definitiv weg ist. der basket ist nämlich in der session als objekt gespeichert.
Das hilft auch nix....

Kommt immer noch der gleiche Fehler:

Quote:
Fatal error: oxBasket::_clearBundles() [<a href='oxbasket.-clearbundles'>oxbasket.-clearbundles</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;pt_basketitem_sellist&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in ....oxid\core\oxbasket.php on line 452
__________________


Individuelle und hochwertige OXID 4 Templates und Shop-Erweiterungen gibt es bei http://www.powertemplate.de
  1. Dem Ingeniör ist nichts zu schwör (Daniel Düsentrieb, 1952)
  2. Geht nicht, gibt's nicht.
  3. Was nicht passt, wird passend gemacht
Weitere Informationen zum powertemplate.de Angebotsspektrum unter http://www.shopplaner.de
Reply With Quote
#Top   #6  
Old 04-10-2010, 06:39 AM
avenger's Avatar
avenger avenger is offline
Senior Member
Join Date: May 2009
Posts: 2,083
avenger is on a distinguished road
Default AW: The script tried to execute a method or access a property of an incomplete object.

Quote:
Originally Posted by avenger View Post
Das hilft auch nix....

Kommt immer noch der gleiche Fehler:
Ich habe jetzt eine Lösung für das Problem erarbeitet ("Dem Ingeniör ist nichts zu schwör!")...

Wenn man in "oxsession.php" die "public function getBasket()" mit dem folgenden Code ersetzt, funktioniert das wieder:

Code:
    public function getBasket()
    {
      //Avenger -- Ensure existence of "oxbasketitem" class before "unserialize"
      if ( $this->_oBasket === null ) 
      {
        $sBasket = self::getVar( $this->_getBasketName() );
        if ( $sBasket ) 
        {
          $oBasketItem=oxnew('oxbasketitem');
          $oBasket = unserialize( $sBasket );
        } 
        if (!is_object($oBasket))
        {
          $oBasket = oxNew( 'oxbasket' );
        }
        $this->setBasket( $oBasket );
      }
      //Avenger -- Ensure existence of "oxbasketitem" class before "unserialize"
      return $this->_oBasket;
    }
Damit wird jetzt sicher gestellt, dass die "oxbasketitem" Klasse (und ihre evtl. "overloads") vorhanden ist(sind) bevor das "Basket"-Objekt aus der Session wiederhergestellt wird ("unserialize").

(Das war ja genau das Problem, das die Fehlermeldung beschrieb: dass die "Overload"-Klasse noch nicht definiert war, wenn das "Basket"-Objekt aus der Session geladen wurde.)

Leider muss das direkt in der "session.php" core Klasse geändert werden, da die Session Klasse nicht überladen werden kann.
__________________


Individuelle und hochwertige OXID 4 Templates und Shop-Erweiterungen gibt es bei http://www.powertemplate.de
  1. Dem Ingeniör ist nichts zu schwör (Daniel Düsentrieb, 1952)
  2. Geht nicht, gibt's nicht.
  3. Was nicht passt, wird passend gemacht
Weitere Informationen zum powertemplate.de Angebotsspektrum unter http://www.shopplaner.de
Reply With Quote
#Top   #7  
Old 03-16-2011, 10:52 AM
SubNet-One SubNet-One is offline
Senior Member
Join Date: Apr 2009
Posts: 146
SubNet-One is on a distinguished road
Default Re: The script tried to execute a method or access a property of an incomplete object.

Hallo Avenger,

ich hatte heute auch das Problem. In meinem Fall war es tatsächlich so, wenn ich oxbasket vor oxbasketitem in die Liste eintrage, funktioniert es; steht oxbasket nach oxbasketitem, knallt es.

Gruß, Kai
Reply With Quote
#Top   #8  
Old 05-05-2012, 03:42 AM
jkrug's Avatar
jkrug jkrug is offline
Senior Member
Join Date: Aug 2009
Location: Magdeburg / Freiburg
Posts: 1,134
jkrug is on a distinguished road
Default AW: The script tried to execute a method or access a property of an incomplete object.

Hallo,

alter Thread, aber ich kann das Verhalten (umgekehrte Reihenfolge geht) genau so bestätigen!

Würde ich mal zumindest als Auffälligkeit bezeichnen. ;-)

Gruß Joscha
__________________
marmalade GmbH
---
OXSEARCH: Elasticsearch für OXID eShop
Kein Gratis-Support für kostenfreie Module per Mail oder PN: Ich bitte von diesen Anfragen abzusehen.
Reply With Quote
Reply

Bookmarks

Tags
access, execute, incomplete, method, object, property, script

« Previous Thread | Next Thread »
Thread Tools
Display Modes

Nicht Sichtbar
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Inefficient access to language texts? avenger Templates and Design 12 07-17-2012 09:31 AM
SVN Web Access changed? aggrosoft Developers 0 04-28-2010 04:48 PM
Fatal error: Call to a member function setSortingIds() on a non-object fruehblinker Installation und Konfiguration 4 06-09-2009 10:23 PM
SVN access Ralf Trapp General 6 03-10-2009 04:10 PM
uncloneable object WebTools de Installation and configuration 2 11-20-2008 05:13 PM

All times are GMT +1. The time now is 09:35 PM.