Проблема в том, что подключаемый файл, несмотря на то, что extends, не видит свойства родителя. И поэтому каркасс App недоделан.
PS да, мб фигня, но стало интересно. вопрос конкретно про данный пример. не про фрэймфорки, паттерны и тд. Хотя не, может быть про паттерны.
class App{
public $url = 'frontpage';
public function __construct(){
if(!empty($_GET['url'])){
$this->url = $_GET['url'];
}
}
public function start(){
$page = ucfirst($this->url);
if(class_exists($page)){
$m= new $page();
if(method_exists($mod, 'getHtml')){
echo $m->getHtml();
}
}
}
}
class Frontpage extends App{
public function getHtml(){
ob_start();
/*******************/
echo $this->url;
/*******************/
return ob_get_clean();
}
}
$a = new App();
$a->start();