我一直沿用CakePHP 4.x教程(据我所知),直到“ CMS教程-身份验证”一章为止。
通过“现在,在每个请求上,AuthenticationMiddleware都会进行一半的检查,以检查请求会话以查找经过身份验证的用户。如果我们正在加载/ users / login页面,则还将检查发布的表单数据(如果有)提取凭证。”
当我尝试访问文章或用户时,出现错误:
(!)致命错误:界面 找不到“ Authentication \ AuthenticationServiceProviderInterface” C:\ wamp64 \ www \ cake \ src \ Application.php在第41行
我试图弄清楚为什么会这样,但是我找不到。我试图在互联网上查找相同的问题,没有骰子。甚至没有提到这可能与安全有关(我之前提到了严格的浏览器设置,但这与另一个问题有关)。
我已将代码上传到Github上:https://github.com/plafeber/cakephp-tutorial
非常感谢您的反馈。我的假设是,如果我从教程中创建完整的代码集,那么我当然可以运行CakePHP 4.1.5并遵循相关的Cake 4.x手册,那么它将起作用。但是,我已经发现,与代码中的代码相比,我必须更改有关DefaultPasswordHasher的用法的代码。因此,我可以想象“教程”页面并不完全正确。
这将是有关User.php中DefaultPasswordHasher的使用的正确行;
//the use line
use Cake\Auth\DefaultPasswordHasher as AuthDefaultPasswordHasher;
//and the function
protected function _setPassword(string $password) : ?string
{
if (strlen($password) > 0) {
$hasher = new AuthDefaultPasswordHasher();
return $hasher->hash($password);
}
}
答案 0 :(得分:0)
解决方案是导航到Cake安装目录(包含src和config文件夹等),然后再次运行Composer调用。显然,这会将文件放在正确的目录中,然后错误不再出现。