AppAsset loading

EDITADO

Esta mañana me ha funcionado, lo único que cambié fue el use, donde cambié "appAsset" por "AppAsset". Recuerdo haberlo probado ayer y tampoco funcionaba, pero ahora va. De todos modos dejo el código corregido y el post original. Gracias.

POST ORIGINAL

Hola chic@s,

Soy nuevo en el foro y estoy intentando comenzar un proyecto básico de Yii2 con twig. Llevo toda la tarde probando e investigando cómo puedo incluir mi assets/AppAsset.php en el views/layouts/main.twig.

Mi appAsset:




<?php

namespace app\assets;

use yii\web\AssetBundle;


class AppAsset extends AssetBundle

{

    public $basePath = '@webroot';

    public $baseUrl = '@web';

    //public $sourcePath = '@app/assets/';

    public $js = [

    ];

    public $depends = [

        'yii\web\YiiAsset',

        'yii\bootstrap\BootstrapAsset',

    ];

    public $css = [

        'css/site.css',

    	'css/bootstrap.min.css',

    ];

}



Y mi main.twig es:




{{ use('yii/helpers/Html') }}

{{ use('yii/bootstrap') }}

{{ #use('app/assets/appAsset')# }}

{{ use('app/assets/AppAsset') }}


{{ register_app_asset() }}


{{ this.beginPage() | raw}}

<!DOCTYPE html>

<html lang="{{app.language}}">

<head>

        <meta charset="UTF-8"/>

        <meta name="viewport" content="width=device-width, initial-scale=1">

        {{ html.csrfMetaTags() | raw }}

        <title>{{ html.encode(this.title) | raw }}</title>

        {{ this.head()  | raw }}

</head>

<body>

    {{ this.beginBody() | raw }}

        {% if app.user().isGuest() %} 

        {% else %} 

	        {{ nav_bar_begin({

	        'brandLabel': 'Bugitor',

	        'options' : {

	                'class': 'navbar-inverse navbar-fixed-top',

	        }

	        })}}

	        {% set logoutTxt = ['Logout (', app.user().identity().username ]|join('') %}

	        {% set logoutTxt = [logoutTxt, ')']|join('') %}

	        {% set items = [

	                {'label': 'Home', 'url': '/site/index'},

	                {'label': 'About', 'url': '/site/about'},

	                {'label': 'Contact', 'url': '/site/contact'},

	                {'label': logoutTxt, 'url': '/site/logout', 'linkOptions': {'data-method': 'post'}}

	                ]

	        %}

	        {{ nav_widget({

	        'options' : {

	                'class': 'navbar-nav navbar-right',

	        },

	        'items': items

	        }) }}

	        {{ nav_bar_end() }}

        {% endif %} 


	<div class="wrap">

        <div class="container">

        	{{ content  | raw}}

        </div>

    </div>

	<footer class="footer">

        <div class="container">

        	<p class="pull-left">&copy; My Company 2015</p>

        	<p class="pull-right">{{Yii.powered()  | raw}}</p>

`		</div>

	</footer>

    {{this.endBody() | raw}}

</body>

</html>

{{this.endPage() | raw}}



Si incluyo la línea de register_app_asset, me lanza el error: An exception has been thrown during the rendering of a template (“call_user_func_array() expects parameter 1 to be a valid callback, class ‘AppAsset’ not found”). He intentado cambiar el namespace, en el main.twig he probado con varias rutas del “use” y nada. Lo necesito porque, si no registro el appAsset, cuando no estoy logueado (y no llamo al nav_bar) no me aparece ningún css cargado y cuando me logueo, cuando se carga el nav_bar, me aparece con el bootstrap.css por defecto de Yii2. Alguna idea? Muchas gracias.