我已经构建了自己的网络应用程序已有一段时间了,但在php中遭到致命错误。
。短篇小说:我正在研究项目的登录/用户部分。login.php
处理登录工作,而student.php
处理帐户内容。
尝试完成doLogin
时,我达到了致命错误,该错误指出student::getProfile()
是"未定义的方法"。student::getProfile()
被称为login
类中validate()
的一部分。
任何帮助将不胜感激!谢谢:)
编辑:在@deceze的帮助下,我能够将问题缩小到我的课程中不自动加载 all 的事实;只有一些。有人可以协助吗?
编辑2:我检查了由作曲家生成的autoload_classmap.php
,列出了我所有的核心类和模型!如果它们在Classmap中列出,为什么作曲家不加载它们?
项目目录
application/
config/
controller/
core/
(core items such as auth, app, view rendering + view controller)
model/
(speciality functions such as login, registration + user)
view/
public/
index.php
.htaccess
vendor/
autoload.php
composer.json
.htaccess
note: /public/index.php calls `require '../vendor/autoload.php';`
composer.json
"autoload": {
"psr-4": {
"": [
"application/core/",
"application/model/"
]
}
}
经过非常乏味的搜索,我发现了错误的错误 - 这很愚蠢!
我有一个名为student
的控制器,同时还拥有一个名为student
的模型,因此我是无意中尝试调用已经称为的类的类。因此,它是在第一个student
类中查看该功能的,而不是实际包含特定函数的另一个。
作曲家没有意识到是否已经有一个名称预定的类,只是在没有任何条目的情况下对其进行否定。
为了避免此错误 - 以及将来的任何其他类名称混音 - 我决定使用core
类和model
类的单个名称空间。这将这些类别分为"子段",从而允许使用名为相同的类(尽管在不同的名称空间中)。
PHP手册:名称空间
站点点:如何使用PHP名称空间,第1部分:基础知识