Upgrade Guide



Upgrade

This guide will point out the key points to be aware of when upgrading to version 3.

All classes within the app directory have a new namespace of App, controllers and models/modules have the following namespaces for classes placed directly in those directories.

Controllers

namespace App\Controllers;

Models

namespace App\Models;

Modules

namespace App\Controllers\ModuleName;

Instantiating a model

Models are instantiated typically within a construct method, use the full namespace to call the class:

public function __construct()
{
    parent::__construct();
    $this->model = new \App\Models\ModelName();
}

Views

Views like classes should have filenames starting with a capital letter for both the directory and the file, for instance, welcome/index.php becomes Welcome/Index.php.

View::make('Welcome/Index', $data);

Loading Images, CSS, js, and assets

Nova has been designed to live above the document root as such images and other assets cannot be called directly instead they need to be routed from Nova, this is done by calling resource_url().

By default, this will return the path to the assets folder, place general assets in there. For theme files place them inside the Theme/Assets directory and call them by using theme_url() this will load the path to the template.

Make use of the Assets helper to load the CSS files:

Assets::css([
    'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css',
    theme_url('css/style.css', 'Bootstrap')
]);

An example of loading an image from Bootstrap/Assets/images.

<img src='<?=theme_url('images/nova.png', 'Bootstrap');?>'>