Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP名称空间不';不能在网络托管中工作_Php_Model View Controller - Fatal编程技术网

PHP名称空间不';不能在网络托管中工作

PHP名称空间不';不能在网络托管中工作,php,model-view-controller,Php,Model View Controller,每当我尝试为我的类使用名称空间时,我都会收到一个错误,说找不到该类或某种类型的类,我已经在免费域和付费托管的.com域上进行了尝试。为什么会这样 举个例子,我有一个controllers文件夹和一个pagesController.php函数,名称空间为App\controllers,在我的自动加载寄存器中,如果有一个控制器被实例化,我会加载它,它在我的本地开发中运行良好。当我将这些文件移动到web主机时,它只会抛出一个错误。我发现了使用名称空间的问题。。。我不得不使用______; dir __

每当我尝试为我的类使用名称空间时,我都会收到一个错误,说找不到该类或某种类型的类,我已经在免费域和付费托管的.com域上进行了尝试。为什么会这样


举个例子,我有一个controllers文件夹和一个pagesController.php函数,名称空间为App\controllers,在我的自动加载寄存器中,如果有一个控制器被实例化,我会加载它,它在我的本地开发中运行良好。当我将这些文件移动到web主机时,它只会抛出一个错误。

我发现了使用名称空间的问题。。。我不得不使用______; dir __;然后使用两个点将其发送回一个文件夹,因为某些原因,即使路径文件相同,使用“ROOT”常量也无法工作

```


那个错误是。。。?你的代码看起来像。。。?我的用法示例:,我收到一个错误,说找不到数据库类[2017年1月30日19:32:28 UTC]PHP致命错误:在第12行的/home/pauldiamant/public_html/index.PHP中找不到Class'classes\Database'。您是否在部署的代码上运行了
composer install
。。。编辑:由于某种原因,spl auto load似乎在web主机上不起作用,但如果我仍然手动包含该文件,则名称空间也不会起作用。那么,您可以展示一下您的自动加载功能吗?服务器上的文件夹结构是什么?安装的PHP版本是什么?(作为你的帖子的编辑,而不是评论?)
<?php

use app\classes\App as App;

require ROOT . '/vendor/autoload.php';
require 'functions.php';

spl_autoload_register(function ($class_name) {
    $validNameSpaces = [
        'app\controllers\\', 'app\models\\', 'app\classes\\'
    ];

    foreach($validNameSpaces as $namespace) {
        if(strpos($class_name, $namespace) === 0) {
            $path = __DIR__ . '/../' . strtr($class_name, '\\', '/') . '.php';
            if(is_file($path) && is_readable($path)) {
                include_once $path;

                return true;
            }
        }
    }
    return false;
});

App::instance();

include_once "routes.php";