Ich sehe einige seltsame Fehler auf meiner Client-Website. Es ist Code, den jemand anders für ihn für seine Bewerbung gemacht hat. Die Fehlermeldung besagt, dass $this
, wenn nicht im Objektkontext, sondern die Class
wurde erweitert, wo von App
.
Bitte helfen Sie.
Fehler
Fatal error: Using $this when not in object context in contactController.php on line 6
contactController.php
class contactController extends App{
public function index(){
$this->view('content'); //error mmessage is pointing here
}
}
app.php
class App{
public $controller;
public $method;
public $params = [];
public function view($file){
include(site_path() . '/views/' . $file . '.php');
}
public function model($file){
require_once(site_path() . '/models/' . $file . '.php');
}
public function engine(){
global $core_current_ControllerMethod, $core_current_controller, $core_current_method;
//Get the current controller and method from a helper function
$get_wc_cm = get_wc_cm();
//Assign it to the global variable
$core_current_ControllerView = $get_wc_cm;
//Seperate the controller and method
$cm = explode('@', $get_wc_cm);
$controller = !empty($cm[0])? $cm[0]: null; // This is the controller
$method = !empty($cm[1])? $cm[1]: null; // This is the method
//Assign it to the global varaible
$core_current_controller = $controller;
$core_current_method = $method;
//Assign it to the class variable
$this->controller = $controller;
$this->method = $method;
$ControllerFile = site_path(). '/controllers/' . $this->controller . '.php';
if(file_exists($ControllerFile)){
require_once($ControllerFile);
new $this->controller;
$callback = is_callable(array($this->controller, $this->method), false);
if($callback){
call_user_func_array([$this->controller, $this->method], [$this->params]);
}
}
}
}
$app = (new App)->engine();
Könnte es sein, dass das Verfahren von seinem Konstruktor aufgerufen wird? – arkascha
TBH, du solltest die gesamte Codebasis dort mit Feuer reinigen, bevor es Eier legt –
@Martin Es ist kein Duplikat. Meine Frage unterscheidet sich von der Antwort, auf die Sie sich beziehen. –