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

命名空间无法正确解析

命名空间无法正确解析

PHP
人到中年有点甜 2022-12-11 10:18:10
命名空间系统,甚至在重新起草 composer.json 中的 Classmap 和转储自动加载之后,都没有给我命名空间中的对象。这似乎也在升级。虽然我有一个文件可以做到这一点,但随着有限的进展成为一个更大的问题。我不知道该怎么办。这是未运行的代码文件之一。这是 login.php:<?phpnamespace Adoms\crud;require_once("../vendor/autoload.php");if (!isset($_SESSION)) {    session_start();    $_SESSION['login'] = false;}?>    <?php        if (!isset($_GET['g'])) {            require('view/login/username.php');        }        else if (isset($_GET['g']) && $_GET['g'] == 1) {            require('view/login/pass.php');        }        else {            $login = new db("../Adoms/config/config.json");   // Says no "Adoms\crud\db" in error msg            $record = $login->read(["users" => ["site_id", "username"]], "username = '" . $_COOKIE['username'] . "' AND password = '" . $_COOKIE['password'] . "'");            if ($record->num_rows == 1) {                header("Location: ../");            }        }    ?>
查看完整描述

3 回答

?
精慕HU

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

要自动加载文件,您需要使用 composer.json autoload 中的文件,只需添加文件路径,然后 dump-autoload 即可加载。


"autoload": {

    "files": [

        "path/to/yourfile.php",


    ]

}


查看完整回答
反对 回复 2022-12-11
?
当年话下

TA贡献1890条经验 获得超9个赞

如果上述答案不起作用,这应该可以解决。将第一个对象的名称空间放在第一位。这在这里的意思是,那crud在之前oauth


    namespace Adoms\crud;


    use Adoms\src\oauth2;

    include_once("../../../vendor/autoload.php");


    if (!isset($_SESSION))

        session_start();


    $db = new db("../../../Adoms/config/config.json");


    $result = $db->read(["users" => ["username", "site_id"]], "`site_id` = '" . $_COOKIE['PHPSESSID'] . "' OR `username` = \"" . $_POST['username'] . "\"");

?>


查看完整回答
反对 回复 2022-12-11
?
HUWWW

TA贡献1874条经验 获得超12个赞

我发现在处理这样的问题时,您可能希望更新您的 composer.lock。composer update这是通过在控制台使用。这应该可以解决任何人的问题。



查看完整回答
反对 回复 2022-12-11
  • 3 回答
  • 0 关注
  • 121 浏览

添加回答

举报

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