PSR-4自动加载在namecheap.com实时服务器上不起作用

时间:2019-12-03 08:45:33

标签: php hosting psr-4

我正在使用namecheap托管我的网站。我在本地计算机上使用了psr-4自动加载功能,但在正常运行的服务器上却无法正常工作。我已与客户支持联系起来,并按照CUDA, mutex and atomicCAS()此处的所有说明进行操作,该站点仅显示空白页。看来我的课程没有自动加载。

这是我的composer.json文件

{
"name": "webama/webama",
"type": "project",
"description": "The Webama Framework.",
"keywords": [
    "framework",
    "webama"
],
"autoload": {
    "psr-4": {
        "App\\": "app/"
    }
}

}

我的application.php

namespace App\Framework;

class Application
{
    protected $controller = DEFAULT_CONTROLLER;
    protected $action = 'index';
    protected $params = [];

    public function __construct()
    {
        $this->parseURL();

        if(file_exists(CONTROLLERS.$this->controller . '.php'))//'../app/controllers/'
        {
            $this->controller = 'App\controllers\\' . $this->controller;//App\controllers\
            $this->controller = new $this->controller;

            if(method_exists($this->controller, $this->action))
            {
                call_user_func_array([$this->controller, $this->action], $this->params);
            }else{
                echo "<h1>404 Not Found</h1>";
            }
        }
        else{
            echo "<h1>404 Not Found</h1>";
        }
    }

    protected function parseURL()
    {
        $request = trim($_SERVER['REQUEST_URI'], '/');
        if(!empty($request))
        {
            $url = explode('/', $request);
            $this->controller = isset($url[0]) ? $url[0]. 'Controller' : DEFAULT_CONTROLLER;
            $this->action = isset($url[1]) ? $url[1] : 'index';
            unset($url[0], $url[1]);
            $this->params = !empty($url) ? array_values($url) : [];
        }
    }
}

我的index.php

require_once '../config/bootstrap.php';

use App\Framework\Application;
use App\Repositories\usersSessionRepository;
use App\Repositories\UserRepository;

new usersSessionRepository;

$user = new UserRepository(); 
$user->getRefIdFromUrl();

new Application;

我的bootstrap.php

session_start();

require_once '../config/config.php';
require_once ROOT . 'app'.DS.'helpers'.DS.'helpers.php';
require_once __DIR__ . '/../vendor/autoload.php';

还有我的配置文件

// Site settings
define('BASE', 'https://orientFx.com');
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(__DIR__) . DS);
define('STORAGE', ROOT. 'storage' . DS);
define('CONTROLLERS', ROOT . 'app' . DS . 'controllers' . DS);
define('VIEWS', ROOT . 'app' . DS . 'views' . DS);
define('REPOSITORIES', ROOT . 'app' . DS . 'repositories' . DS);
define('DEFAULT_CONTROLLER', 'homeController');

// Site settings
define('DEFAULT_LAYOUT', 'default');
define('SITE_TITLE', 'Trade Fx');

// Debug settings
define('DEBUG', true);

// DB settings
define('DB_HOST', '127.0.0.1'); //Database host
define('DB_NAME', 'mvc'); //Database name
define('DB_USER', 'root'); //Database user
define('DB_PASSWORD', ''); //Database password

 // Session settings
 define('SESSION_NAME', 'user'); 
 define('TOKEN_NAME', 'token'); 

 // Session settings
 define('COOKIE_NAME', 'hash'); 
 define('COOKIE_EXPIRY', '604800'); 

一切都可以在localhost上正常运行,但不能在实时服务器上运行。我遵循了所有指示。在我的公用文件夹上安装了作曲家,但似乎无济于事。

0 个答案:

没有答案