Добрый день, пишу свой "фреймворк" (называю его так для себя, а на деле - обычная самописная фигня, просто пишу чисто для себя, чтобы потренироваться). И столкнулся с проблемой, которую не могу понять.
У меня есть класс App. который является родительским для пользовательских классов и методов, выглядит он так
<?php
namespace App;
use Symfony\Component\Yaml\Yaml;
define('BASE_DIR', __DIR__ . '/../');
class App
{
/**
* @var Router
*/
public $router;
/**
* App constructor.
*/
public function __construct()
{
$this->router = new Router();
}
public final function run(){
$this->router->match();
}
/**
* @param string $view
* @param array|null $parameters
* @return string
* @throws \Twig_Error_Loader
* @throws \Twig_Error_Runtime
* @throws \Twig_Error_Syntax
*/
public function render(string $view, array $parameters = null) {
$twig = new Twig();
return $twig->render($view, $parameters);
}
/**
* @param string $parameter
* @return mixed
*/
public function getParameter(string $parameter) {
$file = Yaml::parseFile(BASE_DIR . 'config/config.yml');
$parameters = $file['parameters'];
return $parameters[$parameter];
}
}
Так же у меня есть мой пользовательский класс, который вызывается при переходе на главную страницу
<?php
namespace Controller;
use App\App;
class AppController extends App
{
public function indexAction() {
return $this->render('index.twig', [
'foo' => 'bar'
]);
}
}
и, как вы уже догадались из вопроса, я получаю Fatal error
Uncaught Error: Using $this when not in object context in /var/www/html/framework/src/Controller/AppController in line 12 ( при вызове $this->render() )
В чем может быть проблема, ведь я просто наследую класс, в котором нету никаких статических методов или свойств?