Phalcon php - Phalcon命名空间未定义

3
我正在使用php Phalcon开发项目。
我正在使用Xampp服务器。我遵循的安装过程在此链接中:

http://docs.phalconphp.com/en/latest/reference/install.html

我正在按照网站上的指南和教程进行操作。
我的问题是,每次我键入“class MyClass extends \Phalcon\Mvc\Model”时,
它会显示未定义命名空间“Mvc”,而在其他文件中也会出现Phalcon是未定义命名空间的错误。
安装似乎没问题。
请帮我解决这个问题。

1
如果它不起作用,那么安装肯定有问题。但是真的无法确定出错的具体原因。 - Jon
那我该怎么办?重新安装吗?还有其他选项吗? - Rabbiya Shahid
2
正如jumper85所指出的那样,这是一个IDE“问题”。你正在使用的任何编辑器都不知道Phalcon库,因此它只会引用标准的PHP库,其他所有内容都无法识别。只需忽略“错误”。如果代码在浏览器中运行正常,那就是你关心的。Codelobster PHP编辑器有一个付费的Phalcon插件。 - ed-ta
3个回答

4

我认为这并不是Phalcon安装的实际问题。

我已经注意到我的IDE表现相同,因为Phalcon只作为PHP的扩展加载,并不可用作真正的PHP文件,这些文件可以被您的IDE索引。

检查安装是否OK的最简单方法是在您的项目根目录中创建一个info.php文件。

<?php
phpinfo();

如果您在浏览器中打开此文件,应该会显示一个有关Phalcon信息的块。
有一个脚本可以为您创建存根文件,这些文件可以集成到您的项目中。
如果您的IDE索引了这些文件,则Undefined namespace消息应该消失。 https://github.com/phalcon/phalcon-devtools/blob/master/ide/gen-stubs.php

非常感谢,我会尝试。 - Rabbiya Shahid

1
如果您的代码可以正常工作,但IDE显示Mvc未定义命名空间,则需要为您的IDE安装Phalcon开发工具插件。该插件适用于PHPStorm。Phalcon是一个C扩展,因此如果您没有安装开发工具插件,则IDE将显示未定义的命名空间。
Phalcon有不同的方法来使用模型,例如注册模型类、注册命名空间或注册目录。如果您通过命令创建模型而不是手动编写代码,则会获得适当的基础模型类来扩展。如果仍然存在问题,则可能是Phalcon安装有问题。
在模型中使用--namespace=""
phalcon create-model profiles --namespace="Application\Models"

对于脚手架:

phalcon create-scaffold profiles --ns-models="Application\Models" --ns-controllers="Application\Controllers"

如果您没有注册模型命名空间,只注册模型目录,那么在创建后编辑模型文件并删除命名空间定义。

你能进一步解释一下这两个命令在IDE中是如何解决问题的吗? - Nico Haase
请将所有信息添加到答案本身,而不是评论部分。 - Nico Haase

0

首先检查PHP是否加载了Phalcon模块。在终端中输入以下命令:

php -r "echo phpinfo();" | grep 'phalcon'

如果一切正常,你应该会看到这行代码。
phalcon => enabled

在Windows中,grep命令无法使用,你需要自己查找那一行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接