找不到ErrorException(E_ERROR)类'app \ MyLib \ MyClass'-类似的类工作正常

时间:2019-01-16 23:08:28

标签: php laravel-5

我正在创建一个Web应用程序。我是Laravel的新手,并且仍然在学习。无论如何,这是我的问题:

我正在尝试将自定义类包含到我的项目中。我设法加入了一个班级-管理员,并尝试与另一个班级-Profesor进行同样的操作,但是尽管事实是第一个班级运行良好,但另一个班级却没有。

  1. 我在应用文件夹Biblioteka子文件夹中创建了名为Administrator和Profesor的文件。

  2. 在我放入的每个文件中:

    namespace app\Biblioteka;
    
  3. 在composer.json内部,我进行了以下更改:

    "autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "classmap": [
        "database/seeds",
        "database/factories",
        "app/Biblioteka/Administrator",
        "app/Biblioteka/Profesor"
    ],
    "files": ["app/Biblioteka/Administrator.php",
              "app/Biblioteka/Profesor.php"]
    

    },

  4. 之后,我运行:

    php artisan route:clear
    php artisan cashe:clear
    composer dump-autoload
    

并收到以下消息:

    [RuntimeException]
    Could not scan for classes inside "app/Biblioteka/Administrator"
    which does not appear to be a file nor a folder
    dump-autoload [--no-scripts][-o|--optimize][-a|--classmap-
    authoritative][--apcu][--no-dev]
  1. 我包括了

    use app\Biblioteka\Administrator;
    use app\Biblioteka\Profesor;
    

使用提到的类的文件中。

应用程序适用于Administrator类,但不适用于Profesor类。

首先创建了类管理员。一切正常开始后,我以与管理员相同的方式设置了Profesor类。它在调用该类的构造函数的那一行报告错误。我不知道为什么第二堂课不能正常工作。

感谢任何可以帮助我解决这一问题的人:)

1 个答案:

答案 0 :(得分:1)

如果要将自定义类放在classmap目录中,则无需添加到filesapp块中。删除这些行,然后在PHP文件中使用App/Biblioteka/Administrator;

此位:

"psr-4": {
    "App\\": "app/"
},

表示app目录中的任何内容都可以通过App命名空间引用。因此,对于app/Foo/Bar.php,该类被称为App\Foo\Bar