I am stumped, I must be missing something basic, any ideas would be much appreciated.
I have setup a new Kohana project which works fine with Models and Controllers. For this example I have stripped it right back to a single very basic Model for a User and a single Controller with a single index action inside it.
I decided to use KOstache as my template engine as I heard good things about it. I downloaded the module and the vendor submodule and this does seem to work fine.
My problem arrises when trying to create a new instance of my view model class named View_User, kohana throws an * ErrorException [ Fatal Error ]: Class 'View_User' not found *
My directory structure is as follows
application
|_classes
| |_Controller
| | |_User.php
| |_Model
| | |_User.php
| |_view
| |_user.php
|_templates
|_user.mustache
There are other folders within the project but I believe these are the relevan ones.
My controller seems to be the class with the problem
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_User extends Controller {
public function action_index()
{
$renderer = Kostache_Layout::factory();
$view = new View_User;
$view->title = 'This is the test title';
$this->response->body($renderer->render($view));
}
}
This does not work and complains that it cannot find class View_User yet in my classes/view/user.php file I clearly have a View_User class
<?php
class View_User {
}
Now I assume it is some sort of problem with the way I am setting up KOstache or Kohana, but I am unsure what I am doing wrong.
If I include the class definition at the bottom of the classes/Controller/User.php then everything works as expected, it just doesn't find the class within another file.
From what I've read if the autoloader tries to load class View_User it will look in classes/view/user.php
What am I doing wrong?