Search

Hey y'all. I am getting the following error when I try to update Symphony 2.3.3 to Symphony 2.3.6.

Fatal error: Call to a member function seed() on a non-object in /Users/bmz/Repositories/pcpc-routing/symphony/lib/toolkit/class.extensionmanager.php on line 596

Any thoughts on what is causing this?

I also filed this as an issue on Github.

NOTE: I am running PHP 5.4.25 / Apache 2.2

class.extensionmanager.php

594     foreach($services as $s) {
595         // Initial seeding and query count
596         Symphony::Profiler()->seed();
597         $queries = Symphony::Database()->queryCount();
598
599         // Get instance of extension and execute the callback passing
600         // the `$context` along
601         $obj = self::getInstance($s['name']);
602         if(is_object($obj) && method_exists($obj, $s['callback'])) {
603             $obj->{$s['callback']}($context);
604         }
605
606         // Complete the Profiling sample
607         $queries = Symphony::Database()->queryCount() - $queries;
608         Symphony::Profiler()->sample($delegate . '|' . $s['name'], PROFILE_LAP, 'Delegate', $queries);
609     }

On line 596 Profiler() is called via the Static Class of Symphony which means that Symphony may not have been instantiated and thus the __construct() method has potentially not run.

Symphony::Profiler() returns an instance of the (singleton) Profiler Class. However, if Symphony (the class) has not been instantiated, the constructor would not have been executed and the Profiler Class not instantiated either; therefore, null would be returned to the Symphony::Profiler() call on line 596 and PHP would throw the Fatal error: Call to a member function ... on a non-object because only an instance of Profiler can call the method seed().

Bottom line

For some reason, the Symphony Class has not instantiated yet.

Z,

Is it possible that some of the symphony directory did not get copied over from the 2.3.6 installation (e.g., not all files were replaced)?

Will, thank you for the explanation above. To answer your question, I did replace all of symphony directory, but I am getting that only when I run the update script for 2.3.6. I am able to login to symphony and the site works, it's just I am unable to update the site.

I need to look more in-depth if I have missed something in the process. I'll report back if I find anything else.

Thanks @wjnielsen and @brendo for y'alls input on this.

Profile DevKit extension exists.

It looks as if it was the Continuous Database Integration extension or Dump DB extension, when I uninstalled them... I was able to run the update successfully.

NOTE: I have closed the issue in the Github tracker.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details