Object of class stdClass could not be converted to int

  • Affected App
    WoltLab Suite Core

    Code:

    Code
    FilterValueCacheBuilder::getInstance()->getData([
                'column' => 'foo',
                'filter' => new stdClass(),
                'limit' => 5
    ]);

    Fehler:

    Ursache array_multisort und mögliche Lösung siehe https://www.drupal.org/project/drupal/issues/972536

  • Objekte sind als Parameter extrem unglücklich, weil diese stateful sind, was für die primitiven Datentypen, einschließlich Arrays, nicht gilt. Ein ['foo' => 'bar'] wird immer dasselbe Array sein, aber ein Objekt kann andere Zustände enthalten, die bei der Serialisierung zu Abweichungen führen.

    Dies ist insofern relevant, als dass das Ergebnis der Serialisierung als SHA-1-Hash für den Namen des Cache verwendet wird. Dabei ist es nicht von Belang, ob die Objekte in deinem Fall stets deterministisch sind, sondern wie es sich grundsätzlich verhält.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • Alexander Ebert September 11, 2019 at 5:13 PM

    Added the Label Won’t fix

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!