【问题标题】:Class not found, namespace, subfolder找不到类、命名空间、子文件夹
【发布时间】:2015-04-18 07:21:51
【问题描述】:

我有一个带有几个类的 cli 应用程序,它们位于 /core/modules 中。太多了,所以我希望它们中的一些在 /core/modules/evaluate/ 中,并带有类 Core\Modules\Evaluate\Something。在我的本地计算机上可以,但在远程服务器上不行。

public/index.php中初始化:

// Init loader
$loader = new \Phalcon\Loader();
// Register applications necessary directories
$loader->registerDirs(
    [
        APPLICATION_PATH . '/tasks',
        APPLICATION_PATH . '/models/backend',

...

        APPLICATION_PATH . '/models/risk'
    ]
)->registerNamespaces( // Additionally, register core namespace
        [
            'Core\Helper' => APPLICATION_PATH . '/core/helper',
            'Core\Interfaces' => APPLICATION_PATH . '/core/interfaces',
            'Core\Modules' => APPLICATION_PATH . '/core/modules',
            'Core\Modules\Evaluate' => APPLICATION_PATH . '/core/modules/evaluate',
            'Rest' => APPLICATION_PATH . '/rest'
        ]
    );

这是 core/modules/evaluate 中的模块之一:

<?php
namespace Core\Modules\Evaluate;
use Core\Modules;
class Evaluatewin extends Modules\EvaluateBet {

有什么提示吗?

【问题讨论】:

  • 你在哪里require_once类文件?
  • 我必须require_once 类文件,因为它位于子文件夹中吗?我以为是自动加载器完成的。
  • 自动加载可能无法正常工作。你可以尝试明确地 require_once 文件吗?
  • 是的,就是这样。感谢您的解决方案!

标签: php class namespaces phalcon autoloader


【解决方案1】:

你终于打电话了吗-

$loader->register();

【讨论】:

  • 那么类文件甚至在评估目录的子文件夹中吗?你也可以打印出确切的错误,比如它是否是一个找不到类的异常等等。
猜你喜欢
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
相关资源
最近更新 更多