gpt4 book ai didi

php - 在 zend 框架 2 的模型中获取数据库适配器

转载 作者:行者123 更新时间:2023-12-02 04:36:44 25 4
gpt4 key购买 nike

我是 zf1 开发人员。我启动了 zf2。我正在创建一个身份验证模块。我创建了一个 Auth 类,如文档中所述

<?php
namespace Application\Model;
use Zend\Authentication\Adapter\AdapterInterface;
use Zend\Authentication\Adapter\DbTable as AuthAdapter;

class Myauth implements AdapterInterface {

/**
* Sets username and password for authentication
*
* @return void
*/
public function __construct($username, $password) {


// Configure the instance with constructor parameters...
$authAdapter = new AuthAdapter($dbAdapter,
'users',
'username',
'password'
);

$authAdapter
->setTableName('users')
->setIdentityColumn('username')
->setCredentialColumn('password');


$result = $authAdapter->authenticate();

if (!$result->isValid()) {
// Authentication failed; print the reasons why
foreach ($result->getMessages() as $message) {
echo "$message\n";
}
} else {
// Authentication succeeded
// $result->getIdentity() === $username
}

}
}

问题1:这里如何获取$dbAdapter?问题 2:这是创建 auth 模块的正确方法吗?

最佳答案

我有几句话要说:

<强>1。关于数据库适配器

link向您展示如何配置数据库适配器。

在 config/autoload/global.php 中:

 return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=zf2tutorial;host=localhost',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);

在 config/autoload/local.php 中:

 return array(
'db' => array(
'username' => 'YOUR USERNAME HERE',
'password' => 'YOUR PASSWORD HERE',
),
)

现在,从 ServiceLocatorAware 类中,您可以获得数据库适配器作为

$dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');

<强>2。关于创建身份验证

老兄,为什么要重新发明方轮?如前所述 here , ZfcUser被构建为很大一部分 Zend Framework 2 应用程序的基础。

如前所述here,几乎任何东西都是可定制的.许多模块可用,例如 ScnSocialAuth它依赖于 ZfcUser 并且非常棒。

关于php - 在 zend 框架 2 的模型中获取数据库适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21830080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com