我正在尝试在本机 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 文件的开头。
- 2 回答
- 0 关注
- 195 浏览
添加回答
举报
0/150
提交
取消