gpt4 book ai didi

php - Phalcon:命名空间类声明错误

转载 作者:行者123 更新时间:2023-12-04 16:54:47 25 4
gpt4 key购买 nike

我的文件夹结构是:

/app/config/loader.php
/app/validation/Domain.php

域名.php
namespace Validation
{
use Phalcon\Validation\Validator as Validator;

class Email extends Validator
{
public function validate($validator, $attribute)
{
$result = parent::validate($validator,$attribute);

return $result;
}
}
}

加载器.php
$loader = new \Phalcon\Loader();

$loader->registerNamespaces(
array(
'Validation' => __DIR__ . '/../validation/'
)
);

$loader->register();

echo '<pre><br/>';
var_dump(new Validation\Email());
die();

它返回一个错误:

Fatal error: Class 'Validation\Domain\Email' not found



我在做什么错?

PS:
这里的一个例子 http://docs.phalconphp.com/en/latest/reference/loader.html也不起作用。
// Creates the autoloader
$loader = new \Phalcon\Loader();

//Register some namespaces
$loader->registerNamespaces(
array(
"Example\Base" => "vendor/example/base/",
"Example\Adapter" => "vendor/example/adapter/",
"Example" => "vendor/example/",
)
);

// register autoloader
$loader->register();

// The required class will automatically include the
// file vendor/example/adapter/Some.php
$some = new Example\Adapter\Some();

我创建了相同的结构,但出现错误:

Fatal error: Class 'Example\Adapter\Some' not found

最佳答案

Phalcon loader 的名声有些可疑。如果您使用 composer,通过 autoload 使用它来自动加载您自己的代码通常会更有意义。指示。

# composer.json
{

"require": {
"phpunit/dbunit": "*",
"phpunit/phpunit": "*",
"…": "…"
},
"autoload": {
"psr-0": {
"": "../src"
}
}
}

否则问题将出在路径上,请确保考虑子文件夹(配置所在的位置、加载的代码所在的位置等)。看来你需要改了 'app/validation/''../../app/validation/' ——自己想办法。如果使用 __DIR__ . '../../app/validation/' 不起作用,请尝试设置绝对路径。 .

编辑:

在你的结构中,你说你有 Domain.php但正在加载 Domain\Email ——当然问题就在这里。我也在本地对其进行了测试,加载程序工作的唯一实例是提供绝对路径时(并且假设您实际上拥有带有类的 app/validator/Domain/Email.php 文件)。
$loader->registerNamespaces(
array(
'Validation' => __DIR__ . '/../../app/validation/'
)
);

关于 Composer 自动加载器的建议保持不变。请注意,您的命名空间没有使用 PSR-0 标准( validator 以小写字母开头, Validator 命名空间以大写字母开头),这并不酷……

关于php - Phalcon:命名空间类声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25553734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com