Php 将巴拉圭岩盐包括在项目中';我找不到变量和函数
我已经在WindowsforPHP7上安装了LibNade,并且正在使用PHPStorm开发我的项目。我还安装了Paragonie的Halite,如果LibNaudio扩展安装不正确,它甚至无法安装。IDE还会找到使用过的函数,当单击变量等时,它会打开libnail的拟合文件 但不幸的是,在我的设置中,我遇到了以下错误:Php 将巴拉圭岩盐包括在项目中';我找不到变量和函数,php,php-extension,libsodium,Php,Php Extension,Libsodium,我已经在WindowsforPHP7上安装了LibNade,并且正在使用PHPStorm开发我的项目。我还安装了Paragonie的Halite,如果LibNaudio扩展安装不正确,它甚至无法安装。IDE还会找到使用过的函数,当单击变量等时,它会打开libnail的拟合文件 但不幸的是,在我的设置中,我遇到了以下错误: Uncaught Error: Undefined constant 'Sodium\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE' in C:\Ser
Uncaught Error: Undefined constant 'Sodium\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE' in C:\Server\nginx-1.11.1\html\mywebsite\vendor\paragonie\halite\src\KeyFactory.php:344
我的index.php文件如下所示:
<?php
require_once 'vendor/autoload.php';
spl_autoload_register(function ($class) {
require_once $class . '.php';
});
$router = new AltoRouter();
$router->setBasePath('/' . basename(__DIR__));
require_once 'config/routes.php';
$match = $router->match();
$GLOBALS['db'] = new \config\database(true, null);
try
{
if ($match) {
$routeController = new Modules\Core\RouteController($match);
echo $routeController->bootstrap();
}
}
catch (Exception $ex)
{
//@todo log every Exception
}
我已经在扩展目录中安装了php_libnaid.dll,并将libnaid.dll放在php服务器的目录中。只是为了尝试一下,我后来也把它放在了system32目录和Syswow64目录中——这两个目录都没有改变任何东西
我刚刚用composer安装了paragonie的halite库,但不幸的是,使用它比我想象的要困难。我还尝试在没有Halite的情况下使用LibNasdium扩展,但这会导致类似的错误,即找不到所需的类、常量和函数等
我也尝试过更改我的自动加载器,但奇怪的是IDE发现所有东西都没有问题,但在浏览器中执行脚本却没有问题。要使用Halite 2.x,您需要:
- libNasda1.0.9+(如果您在编译.9时遇到问题,最好是1.0.10)
- PECL-LiB钠1.0.3+(最好是1.0.6),根据LiB钠1.0.9+编译
<?php
use \ParagonIE\Halite\Halite;
var_dump(Halite::isLibsodiumSetupCorrectly());
1)是否在php.ini中启用了扩展;2)是否重新启动了web服务器?两个都是。我只是想了想:这可能是版本问题吗,因为我安装了libnaude的1.0.6版,但也存在1.0.10版。我不是自己编译的,而是为windows使用预编译的dll文件。我还用phpinfo()检查了它,它说libnaid支持已启用,但库版本仅为1.0.5,而编译版本为1.0.6这是一个有用的答案,因为验证返回false。非常感谢。
<?php
use \ParagonIE\Halite\Halite;
var_dump(Halite::isLibsodiumSetupCorrectly());
<?php
use \ParagonIE\Halite\Halite;
// TRUE enables verbose output:
Halite::isLibsodiumSetupCorrectly(true);