Frage

Ich erhalte diesen seltsamen Fehler child pid 1789 exit signal Bus error (10), den ich noch nie in meinem Apache-Fehlerprotokoll gesehen habe. Ich verwende das FuelPHP-Framework. Die Web-App funktioniert einwandfrei. Aber heute habe ich plötzlich einen neuen Controller erstellt, der selbst eine Kopie eines anderen Controllers ist. Die, von der ich kopiert habe, funktioniert einwandfrei (http:// localhost / myapp / admin / users), aber die Kopie (http:// localhost / myapp / admin /wohnungen) macht mir diesen Fehler?! Ich bin darüber frustriert.

Nach 3 Stunden Debugging habe ich endlich die Zeile gefunden, in der das Ganze aufhört. Es befindet sich im FuelPHP-Kern in der Router-Klasse in dieser Zeile if (class_exists($class)). Der $class vor dem if hat den Wert Controller_Admin_Apartments. Dies ist die Klasse, die ich hinzugefügt habe und die in meinem Controller-Klassenordner vorhanden ist.

Kraftstoff / Kern / Klassen / Router.php:

protected static function parse_segments($segments, $namespace = '', $module = false)
{
    $temp_segments = $segments;

    foreach (array_reverse($segments, true) as $key => $segment)
    {
        $class = $namespace.'Controller_'.\Inflector::words_to_upper(implode('_', $temp_segments));
        array_pop($temp_segments);
        if (class_exists($class))      // ***** HERE ERROR HAPPENS ***** //
        {
            return array(
                'controller'    => $class,
                'action'        => isset($segments[$key + 1]) ? $segments[$key + 1] : null,
                'method_params' => array_slice($segments, $key + 2),
            );
        }
    }

    // Fall back for default module controllers
    if ($module)
    {
        $class = $namespace.'Controller_'.$module;
        if (class_exists($class))
        {
            return array(
                'controller'    => $class,
                'action'        => isset($segments[0]) ? $segments[0] : null,
                'method_params' => array_slice($segments, 1),
            );
        }
    }
    return false;
}

Ein Benutzer im FeulPHP-Forum hat festgestellt, dass dies möglicherweise mit der Hardware zusammenhängt. Aber es ist nicht. Ich habe das Ganze auf einen anderen Computer verschoben und habe immer noch das Gleiche. Ich verstehe es einfach nicht. Was passiert hier?

War es hilfreich?

Lösung

Ok, erschieß mich.Habe gerade den Fehler selbst gefunden.Ich weiß nicht, warum es passiert, aber ich hatte einen Synthax-Fehler in meinem Controller-Controller_Admin_Apartments.Ich hatte diese Funktion:

public function action_delete($id = null)
{
    if (apartment = Model_Apartment::find($id))
    {
        $apartment->delete();
        Session::set_flash('success', 'Deleted apartment #'.$id);
    }
    else
    {
        Session::set_flash('error', 'Could not delete apartment #'.$id);
    }
    Response::redirect('admin/apartments');
}

Beachten Sie die Zeile: if (apartment = Model_Apartment::find($id)), in der ich vergessen habe, $ vor dem Variablennamen hinzuzufügen.Ich bin wirklich überrascht, dass mich das FulePHP-Framework nicht darauf aufmerksam gemacht hat und dass der einzige Fehler, den ich hatte, im Apache-Fehlerprotokoll war: S.Seltsam, nur seltsam ...

Andere Tipps

Dies ist eine völlig andere Lösung, die sich jedoch auf den 'Signalbusfehler' bezieht: Ich habe diese erhalten, als ich versehentlich 512MB und nicht nur 512M in die memory_limit-Einstellung meiner php.ini eingegeben habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top