【问题标题】:Using namespaces in PHP :: Fatal Error Core\App not found在 PHP 中使用命名空间 :: Fatal Error Core\App not found
【发布时间】:2016-05-20 19:03:03
【问题描述】:


我在本地(WAMP)制作了一个 MVC 项目,它运行完美。但是当我将它部署在 Web 服务器中时会出现此错误:

Fatal error: Class 'Core\App' not found in home/dmlink/public_html/public/index.php on line 14

这是第14行的代码:

13: spl_autoload_register('autoload_classes');
14: $app = new \Core\App;
15: $app->render();

项目结构:

  • app:这里是控制器、模型和视图。
  • 核心:这里是核心文件。
  • public:因为这个目录运行应用程序。

我在网络服务器中获得了与本地主机相同的版本:

  • php 5.5
  • 阿帕奇 2.4

这是索引的完整代码:

define('PROJECT_PATH', dirname(__DIR__));
define('APP_PATH', PROJECT_PATH . '/app');

function autoload_classes($class_name){
    $file = PROJECT_PATH . '/' . str_replace('\\', '/', $class_name) . '.php';
    if (is_file($file)) {
        include_once $file;
    }
}

spl_autoload_register('autoload_classes');
$app = new \Core\App;
$app->render();

导致此错误的任何想法 顺便谢谢你。

【问题讨论】:

  • 你在使用作曲家吗?如果没有,它允许您自动加载您的类并下载任何其他依赖项并自动加载它们。
  • 我使用 slp_autoload_register() 来加载 Core 文件夹中的所有类。
  • 您注册/包含核心文件的路径了吗?检查phpinfo以防万一?否则尝试重新启动服务器。
  • 我在 .htaccess 文件中添加了 php.ini 文件的路径(php_value inlcude_path),我尝试通过添加 set_include_path() 函数来设置路径,但不起作用
  • 如果您检查了文件实际上包含在两台服务器上,那么它一定是服务器之间的配置差异。检查您的 apache 和 php.ini 设置。两台服务器都允许文件包含吗?

标签: php model-view-controller namespaces fatal-error classnotfound


【解决方案1】:

最后我发现了错误,而且很简单!。

错误是类所在目录的名称。 我只是将目录重命名为 'Core' 而不是 'core' .... 就是这样。

谢谢大家!!

【讨论】:

    【解决方案2】:

    可能错误在于服务器配置,请检查您的服务器配置文件并确保您的 MVC 项目具有正确的路径。

    【讨论】:

    • 我再次查看了配置文件,路径是正确的。 : (
    • 我遇到过这种错误,错误仅在于服务器配置文件。请务必再次正确检查,尤其是 php 的位置。
    • 我在 .htaccess 文件中添加了 php.ini 文件的路径(php_value inlcude_path),我尝试通过添加 set_include_path() 函数来设置路径,但不起作用
    猜你喜欢
    • 2020-09-05
    • 2020-06-28
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2021-12-02
    • 2011-02-22
    • 1970-01-01
    相关资源
    最近更新 更多