Php 将巴拉圭岩盐包括在项目中';我找不到变量和函数

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

我已经在WindowsforPHP7上安装了LibNade,并且正在使用PHPStorm开发我的项目。我还安装了Paragonie的Halite,如果LibNaudio扩展安装不正确,它甚至无法安装。IDE还会找到使用过的函数,当单击变量等时,它会打开libnail的拟合文件

但不幸的是,在我的设置中,我遇到了以下错误:

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);