0

Zend フレームワークを試しています。E:\Archivos de programa\Zend\ZendServer\shareに 2 つのフォルダーがあります。このフォルダーは ZendServer で、もう 1 つは ZendServer2 です。この 2 つのバージョンをインストールしたことがあるかどうかは思い出せませんが、これが問題だとは思わないでください。NetBeans を IDE として使用しています。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

理由がわかりません。助けてください。前もって感謝します

4

1 に答える 1

0

アプリケーションで名前空間を使用しているため、オートローダーがこれを処理できることを確認する必要があります。それがZF1アプリなら、そうではありません。代わりに、require を使用してクラス ファイルを含めることはできますか? 名前空間で動作するようにオートローダーを修正することもできます

次に、名前空間を使用する場合、クラスのエイリアスを作成する場合

use Zend\Crypt\BlockCipher;

次に、それをインスタンス化します

$blockCipher = BlockCipher::factory('mcrypt',array('algo'=>'aes'));
于 2013-08-24T09:34:08.763 に答える