【问题标题】:Class validator not found in respect validation Lib在验证库中找不到类验证器
【发布时间】:2016-12-21 09:39:11
【问题描述】:

我是作曲家的新手,但我可以从 cmd 获取 vendorcomposer.lockcomposer.json,然后我将它们粘贴到我的项目中,而没有 Validation_Master 文件夹。 我的项目路径:C:\wamp64\www\php Projects\project 1\(here there are test.php and vendor, composer.lock and composer.json) Validation_Master 文件夹路径:C:\wamp64\www\php Projects\Validation_Master 我的代码是:

<?php
    require "vendor/autoload.php";
    use Respect\Validation\Validator as v;
    $number = 123;
    v::numeric()->validate($number);
?>

但上面的代码给了我以下错误:

致命错误:在 'Respect\Validation\Validator' 类中找不到 C:\wamp64\www\php 项目\项目 1\test.php


我做了什么?!!?
将 Validation_Master 文件夹复制到 test.php 的路径 ==>(失败)
将供应商文件夹复制到 Validation_Master 文件夹的路径并从那里需要 ==>(失败)
大量操作命名空间并将命名空间 Respect\Validation 添加到代码中 ==>(失败)
有什么问题 ???? 我如何使用尊重验证库?????请基本上回答我(我之前读过文档但没有帮助)
vendor folder image
composer.json 代码:

{
    "name": "respect/validation",
    "description": "The most awesome validation engine ever created for PHP",
    "keywords": ["respect", "validation", "validator"],
    "type": "library",
    "homepage": "http://respect.github.io/Validation/",
    "license": "BSD Style",
    "authors": [
        {
            "name": "Respect/Validation Contributors",
            "homepage": "https://github.com/Respect/Validation/graphs/contributors"
        }
    ],
    "require": {
        "php": ">=5.6"
    },
    "require-dev": {
        "egulias/email-validator": "~1.2",
        "malkusch/bav": "~1.0",
        "mikey179/vfsStream": "^1.5",
        "phpunit/phpunit": "~5.3",
        "symfony/validator": "~2.6.9",
        "zendframework/zend-validator": "~2.3"
    },
    "suggest": {
        "ext-bcmath": "Arbitrary Precision Mathematics",
        "ext-mbstring": "Multibyte String Functions",
        "egulias/email-validator": "Strict (RFC compliant) email validation",
        "malkusch/bav": "German bank account validation",
        "symfony/validator": "Use Symfony validator through Respect\\Validation",
        "zendframework/zend-validator": "Use Zend Framework validator through Respect\\Validation",
        "fabpot/php-cs-fixer": "Fix PSR2 and other coding style issues"
    },
    "autoload": {
        "psr-4": {
            "Respect\\Validation\\": "library/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Respect\\Validation\\": "tests/library/"
        }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "2.0-dev"
        }
    },
    "scripts": {
        "test": "./vendor/bin/phpunit"
    }
}

autoload.php 代码:

<?php
require_once  __DIR__ . '/composer' . '/autoload_real.php';

return ComposerAutoloaderInit46e0d859a60be6f2acf30ed92a2228ad::getLoader();

感谢并抱歉我写了很多

更新:我的问题类似于这篇文章:Why my autoload.php of composer doesn't work?,但没有帮助
我还在 cmd ==> 中运行composer dump-autoload(失败)

【问题讨论】:

  • 添加您的 composer.json 文件内容和您的供应商文件夹的屏幕截图

标签: php composer-php autoload respect-validation


【解决方案1】:

在我看来,您复制了 respect/validation 库的 composer.json,并尝试将其用作您项目的 composer.json。这是完全错误的做法。

将其用作您的项目 composer.json:

{
  "require": {
    "respect/validation": "^1.0"
  }
}

然后:

  • 运行composer install
  • 再次运行您的脚本。

【讨论】:

  • 非常感谢。我做LOL真的很愚蠢,但是为什么程序员在composer.json不起作用时将它放在Lib中。有什么区别?再次感谢酒精
  • 每个库都有自己的 composer.json 来声明自己的依赖项。当您运行更新时,Composer 会收集所有这些信息(没有锁定文件的安装基本上也是一个更新过程)。它需要了解所有库的所有要求和约束,以解决它可以/应该安装的正确版本。
猜你喜欢
  • 1970-01-01
  • 2014-12-23
  • 2013-05-09
  • 2011-08-24
  • 2015-12-27
  • 2019-03-23
  • 2023-01-05
  • 2012-06-01
  • 1970-01-01
相关资源
最近更新 更多