Hoi allen.

Ik ben met een eigen raamwerkje bezig en heb voor mijzelf besloten om met namespaces te werken.
Op zich werkt het nu allemaal voor wat er staat maar nu loop ik even vast op een extends.

In mijn map projectx/controllers/home.php staat:

<?php
use projectx\system\controller;

class home extends controller 
{
    public function index()
    {
        echo 'test';
        $this->loadModel();
    }
}
?>

Mijn hoofd controller staat in projectx/system/controller.php

<?php
namespace projectx\system;

class controller 
{
    public function loadModel()
    {
        echo 'Model Called!';
        // echo en return geprobeerd.
        //return 'Model Called!';
    }
}
?>

De controller home.php word netjes geladen middels mijn autoloader.
Echter doet de functie in de hoofd controller niets.
Ik krijg netjes de echo test te zien maar de functie die ik return in de hoofdcontroller niet.
Wat vergeet ik?
Je gebruikt return en geen echo.
Dan zie je inderdaad niets.
Was hij maar zo simpel SanThe.
Als ik echo dan zie ik hem ook niet.
EDIT
Heb het werkend, echter vind ik dit vaag.
Geef ik hem mee in een constructor dan werkt het wel.

Oke, ik geef het even op.
- autoloader verwijdert.
- op de ouderwetse manier includes gemaakt.
En toch werkt het niet zoals ik wens..
Als ik hem zo doe werkt het wel:

<?php

class Controller 
{      
     public function model($model)
    {
         echo $model;
        //require_once 'projectx/models/' .$model . '.php';
        //return new $model();
    } 
}
?>

mijn system/controllers/controller.php

<?php
class home extends Controller 
{

    public function index()
    {
        $controller = new Controller;
        $controller->model('test');
    }
}
?>

Het lijkt wel een bug in php?
Ik werk overigens met php 5.59 op Ubuntu 14.04.
De volgende code werkt bij mij wel. Kun je kijken of dit bij jou ook werkt?

<?php

namespace projectx\system;

class controller
{
public function loadModel()
{
echo 'Model Called!';
// echo en return geprobeerd.
//return 'Model Called!';
}
}
?>
<?php
require 'controller.php';

use projectx\system\controller;

class home extends controller
{
public function index()
{
echo 'test home controller<br />';
$this->loadModel();
}
}

(new home())->index();

Hoi Joe,

Het is niet heel netjes van me, maar inmiddels ben ik opnieuw begonnen en is ook gelukt.
Ik was vergeten om een nieuwe instance te maken in mijn app waardoor de controller niet gezien werd.
i.i.g. bedankt voor de moeite.

Reageren