【问题标题】:Cant understand what's happening无法理解发生了什么
【发布时间】:2013-08-26 21:55:07
【问题描述】:

我正在尝试 Zend 框架,我在 E:\Archivos de programa\Zend\ZendServer\share 中有两个文件夹,一个是 ZendServer,另一个是 ZendServer2 我不记得我是否曾经安装过这两个版本,但我认为这不是问题 我正在使用 netbeans 作为 ide ando 我正在尝试使用 BlockCipher 制作用户的 ABM 这是我的代码

<?php
use Zend\Crypt\BlockCipher;
class Application_Model_DbTable_Usuarios extends Zend_Db_Table_Abstract
{

    protected $_name = 'usuario';

    public function getUsuario($usuario)
    {
        $usuario = (string)$usuario;
        $row = $this->fetchRow('Usuario = ' . $usuario);
        if (!$row) {
            throw new Exception("Could not find row $usuario");
        }
        return $row->toArray();
    }

    public function addUsuario($usuario, $clave)
    {

       $blockCipher = Zend\Crypt\BlockCipher::factory('mcrypt',array('algo'=>'aes'));
       $blockCipher->setKey('encryption key');
       $result = $blockCipher->encrypt($clave);
       echo "Encrypted text: $result \n";
       exit;
       $data = array(
            'Usuario' => $usuario,
            'Clave' => $blockCipher,
        );
        $this->insert($data);

    }

    public function updateUsuario($usuario, $clave)
    {
        $blockCipher =  BlockCipher::factory($clave, array(
                                'algo' => 'blowfish',
                                'mode' => 'cfb',
                                'hash' => 'sha512'
                        ));
        $data = array(
            'Clave' => $blockCipher,
        );
        $this->update($data, 'Usuario = ' . (string)$usuario);

    }

    public function deleteUsuario($usuario)
    {
        $this->delete('Usuario = ' . (string)$usuario);
    }

}

在我的 php.ini 中我有 include_path=".;E:\Archivos de programa\Zend\ZendServer\share\ZendFramework2\library"

我得到了这个错误

Fatal error: Class 'Zend\Crypt\BlockCipher' not found in E:\Documents and Settings\dvieira\Mis documentos\NetBeansProjects\justforgeeks\application\models\DbTable\Usuarios.php on line 21

我不明白为什么。 你能帮我吗? 提前致谢

【问题讨论】:

  • 您似乎正尝试在 ZF1 应用程序中使用 ZF2 类。您能否确认您使用的是哪个版本的 ZF?
  • 可能是,但我确实这么认为,当我尝试使用 phpinfo 时,它显示此程序使用 Zend 脚本语言引擎:Zend Engine v2.3.0,版权所有 (c) 1998-2012 Zend Technologies Zend Extension Manager v5.1,版权所有 (c) 2003-2010,由 Zend Technologies 提供
  • 这些都与 Zend 框架无关。您能否提供有关您的应用程序文件结构的更多信息?
  • 感谢您的回答,搜索如何实现我找到的 zend 版本:localhost:10081/ZendServer/Index/Index#1377541716060 上面写着:Zend Framework 版本 1.12.0 我认为这可能是问题所在。 Y 将尝试更新到 zend 2.0。再次感谢您

标签: php zend-framework crypt


【解决方案1】:

您在应用程序中使用命名空间,因此您需要确保您的自动加载器可以处理此问题。如果它是 ZF1 应用程序,则不是。您可以尝试使用 require 来包含类文件吗?您也可以将自动加载器修改为work with namespaces

其次,在使用命名空间时,如果为类创建别名

use Zend\Crypt\BlockCipher;

然后实例化它

$blockCipher = BlockCipher::factory('mcrypt',array('algo'=>'aes'));

【讨论】:

  • 谢谢,结果我有zend1.12,我会更新再试一次。
猜你喜欢
  • 2018-11-02
  • 2021-07-18
  • 2021-02-18
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
相关资源
最近更新 更多