0

Im trying to publish my webpage using docker on my nas. But Can't get the PSR-4 to work, it wont find the controllers through the namespacing. Everything worked on my vagrant box. But as long as I don't extend a class it wont break

Whoops \ Exception \ ErrorException (E_ERROR) Class 'Rsubscribe\Controllers\BaseController' not found

bootstrap/start.php

require(__DIR__ . "/../vendor/autoload.php");
session_start();  
$router = new AltoRouter();

BaseController

<?php
namespace Rsubscribe\Controllers;

use duncan3dc\Laravel\BladeInstance;

class BaseController{
    protected $blade;

    public function __construct()
    {
        $this->blade = new BladeInstance("/var/www/views", "/var/www/cache/views");
    }
}

PageController

class PageController extends BaseController
{
    public function getShowHomePage()
    {
        echo $this->blade->render("home");
    }

    public function getMoviePage()
    {
        echo $this->blade->render('movies');
    }
}

Routes:

<?php        
    use duncan3dc\Laravel\BladeInstance; // Temp
    $router->map("GET", "/", "Rsubscribe\controllers\PageController@getShowHomePage", "home");
    $router->map("GET", "/home", "Rsubscribe\controllers\PageController@getShowHomePage", "home_2");
    $router->map("GET", "/movies", "Rsubscribe\controllers\PageController@getMoviePage", "movies");

composer.json

 .....
 .....
 "autoload": {
        "psr-4": {"Rsubscribe\\": "src/"}
    }
Rasmus Rajje Josefsson
  • 1,564
  • 2
  • 15
  • 33

1 Answers1

1

The problem was that the namespace was Case sensitivity running on linux server but not when running on my osx machine for some reason. The folders is in lowercase and must therefore be lowercase in the namespaces too.

Rasmus Rajje Josefsson
  • 1,564
  • 2
  • 15
  • 33