Почему я не могу импортировать шифровальщик StringProvider - PullRequest
0 голосов
/ 11 февраля 2020

Я установил ciphersweet на свой сервер, используя composer, но когда я пытаюсь импортировать библиотеку, я получаю эту ошибку.

Fatal error: Uncaught Error: Class 'ParagonIE\CipherSweet\KeyProvider\StringProvider' not found in index.php.

Похоже, что зависимость не установилась правильно, я заблудился, можете ли вы помочь, пожалуйста.

Это ошибка php.

вот мой код :

use ParagonIE\CipherSweet\EncryptedRow;
use ParagonIE\CipherSweet\Transformation\AlphaCharactersOnly;
use ParagonIE\CipherSweet\Transformation\FirstCharacter;
use ParagonIE\CipherSweet\Transformation\Lowercase;
use ParagonIE\CipherSweet\Backend\FIPSCrypto;
use ParagonIE\CipherSweet\KeyProvider\StringProvider;


$provider = new StringProvider('a981d3894b5884f6965baea64a09bb5b4b59c10e857008fc814923cf2f2de558');
$engine = new CipherSweet($provider, new FIPSCrypto());



/** @var CipherSweet $engine */
$row = (new EncryptedRow($engine, 'contacts'))
    ->addTextField('first_name')
    ->addTextField('last_name')
    ->addFloatField('latitude')
    ->addFloatField('longitude');

// Notice the ->addRowTransform() method:
$row->addCompoundIndex(
    $row->createCompoundIndex(
        'contact_first_init_last_name',
        ['first_name', 'last_name'],
        64, // 64 bits = 8 bytes
        true
    )
        ->addTransform('first_name', new AlphaCharactersOnly())
        ->addTransform('first_name', new Lowercase())
        ->addTransform('first_name', new FirstCharacter())
        ->addTransform('last_name', new AlphaCharactersOnly())
        ->addTransform('last_name', new Lowercase())
);

$prepared = $row->prepareRowForStorage([
    'first_name' => 'Jane',
    'last_name' => 'Doe',
    'latitude' => 52.52,
    'longitude' => -33.106,
    'extraneous' => true
]);

var_dump($prepared);
?> 

1 Ответ

1 голос
/ 11 февраля 2020

Вам нужно загрузить vendor/autoload.php, чтобы установленные пакеты работали.

Например, добавьте require_once __DIR__ . '/vendor/autoload.php'; в начало вашего файла. Это позволит php узнать о пространствах имен в ваших пакетах.

Возможно, вам придется изменить это, если ваши файлы не находятся в каталоге root вашего приложения. Например, если ваши файлы находятся в каталоге app/, эти файлы должны использовать require_once __DIR__ . '/../vendor/autoload.php'

Подробнее см. https://getcomposer.org/doc/01-basic-usage.md#autoloading.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...