为了账号安全,请及时绑定邮箱和手机立即绑定

无法在常规 php 文件中导入 PHP 类

无法在常规 php 文件中导入 PHP 类

PHP
郎朗坤 2021-12-03 14:56:18
我正在尝试在本机 php 中构建一个儿子 api。我创建了一个带有类的结构,现在我尝试在常规 php 文件中使用这些类,该文件将使用 http 客户端从外部调用。问题是我无法从这些类中实例化新对象,当我做的一切都停止并且我无法继续执行我的文件时。用户.php :use Actions\Users\UserMethods;if ($_SERVER['REQUEST_METHOD'] === 'GET') {   try{       $Methods = new UserMethods();       if($_GET["id"]!==null){           $user = $Methods->getUser($_GET["id"]);           var_dump($user);           echo json_encode(['user'=>$user]);       }   }catch (Exception $exception){       returnError($exception->getMessage());   }}在我分配 $Methods 之前,我可以 vardump 任何东西,但在我分配之后什么都不起作用。用户方法类:namespace Actions\Users;use Models\UserModel;use database\dbconnect;use Constants\DbConfig;class UserMethods{    private $DataBase;    private $userValidator;    /**     * UserMethods constructor.     */    public function __construct()    {        try{            $this->userValidator = new UserValidator();            $this->DataBase = new dbconnect(DbConfig::$BD_HOST.":".DbConfig::$DB_PORT,                DbConfig::$DB_USERNAME,DbConfig::$DB_PASSWORD,DbConfig::$DB_DBNAME);        }catch(\Exception $exception){            var_dump($exception);        }    }    public function createUser(UserModel $userModel){        try{            $this->userValidator->validate($userModel);            $name=$userModel->getName();            $email= $userModel->getEmail();            $sqlQuery="Insert into users(email,name) values ($$email,$$name)";            return $this->handleQuery($sqlQuery);        }catch(\Exception $exception){            throw $exception;        }    }    public function updateUser(UserModel $userModel){        try{            $this->userValidator->validate($userModel);            $name=$userModel->getName();            $email= $userModel->getEmail();            $id=$userModel->getId();            $sqlQuery="                UPDATE users                SET                     name = $$name,                    email = $$email,                    ...                WHERE                    id=$$id;            ";可能是什么问题?
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您似乎错过了文件的导入。使用命名空间时,为了使导入几乎自动,最好实现自动加载器,我建议检查如何使用 composer 启用自动加载

如果您的类很少,您可以避免使用自动加载器而只是手动导入每个类,在这种情况下,您应该:

require UserMethods.php

在 User.php 文件的开头。


查看完整回答
反对 回复 2021-12-03
?
精慕HU

TA贡献1845条经验 获得超8个赞

包括自动加载功能或添加 require('pathToClass/ClassName.php') 尝试正确的路径命名空间大小字母。


查看完整回答
反对 回复 2021-12-03
  • 2 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信