Php symfony4.3添加带有类的自定义文件夹

Php symfony4.3添加带有类的自定义文件夹,php,symfony,symfony4,Php,Symfony,Symfony4,在我的默认symfony4结构中,我想添加lib文件夹,在那里我有额外的类。比如说: -bin -config -lib - Importer.php ...(other files with classes) -public -src - Controller - TestController.php - Entity - Form ... ... 但我不知道以后如何使用我的文件,即:Importer.php 假设Importer.php中有一个类导

在我的默认symfony4结构中,我想添加lib文件夹,在那里我有额外的类。比如说:

-bin
-config
-lib
  - Importer.php
  ...(other files with classes)
-public
-src
   - Controller
      - TestController.php
   - Entity
   - Form
  ...
...
但我不知道以后如何使用我的文件,即:Importer.php

假设Importer.php中有一个类导入器。如果我尝试从TestController.php使用它,我会得到:

试图从命名空间库加载类导入器。是吗 忘记另一个命名空间的use语句

TestController.php具有

use Importer;
PhpStorm自动检测到在顶部指定。我还尝试在Importer.php文件中添加名称空间,例如:

namespace lib;
然后在TestController中:

use lib\Importer;
但它产生了同样的结果

最后,在阅读了有关服务的内容后,我尝试将该文件添加到config/services.yaml

lib\:
    resource: '../lib/Importer.php'
这给出了同样的结果

做什么,如何生活?

首先要了解

接下来,请阅读有关的文章

为文件夹选择一个前缀,比如Lib。确保lib文件夹中的所有文件都具有正确的命名空间。例如,导入器类必须存储在lib\Importer.php中,并且必须具有名称空间lib;,Items\Item类必须存储在lib\Items\Item.php中,并且必须具有名称空间lib\Items\Item;等等

你的文件准备好了。只需要通知Symfony他们的情况

Symfony使用作曲家的自动加载器,所以请检查。然后在composer.json中添加用于自动加载的新文件夹:

它说lib文件夹中的所有类都有自己的独立文件,并且它们的名称空间中有lib前缀,名称空间的其他部分类似于目录结构

接下来,您需要清除autoloader的缓存。运行控制台:

composer composer dump-autoload
最后,您可以使用您的类:

use Lib\Importer;

$importer = new Importer;
您还可以将文件添加到。

首先阅读

接下来,请阅读有关的文章

为文件夹选择一个前缀,比如Lib。确保lib文件夹中的所有文件都具有正确的命名空间。例如,导入器类必须存储在lib\Importer.php中,并且必须具有名称空间lib;,Items\Item类必须存储在lib\Items\Item.php中,并且必须具有名称空间lib\Items\Item;等等

你的文件准备好了。只需要通知Symfony他们的情况

Symfony使用作曲家的自动加载器,所以请检查。然后在composer.json中添加用于自动加载的新文件夹:

它说lib文件夹中的所有类都有自己的独立文件,并且它们的名称空间中有lib前缀,名称空间的其他部分类似于目录结构

接下来,您需要清除autoloader的缓存。运行控制台:

composer composer dump-autoload
最后,您可以使用您的类:

use Lib\Importer;

$importer = new Importer;

您还可以将文件添加到。

您需要更新composer.json文件,以便自动加载程序可以为您找到新文件。您可能会想花一些时间学习名称空间以及如何使用它们。@Cerad在我要学习的内容列表中……出于好奇:在根级别添加单独的文件夹有什么必要?为什么不按照最佳实践建议使用它呢?这是其他项目也需要的某种公共依赖项吗?@Nick这确实是公共依赖项,它除了被应用程序使用外,还被服务器上的cron直接使用。您需要更新composer.json文件,以便自动加载程序能够为您找到新文件。您可能会想花一些时间学习名称空间以及如何使用它们。@Cerad在我要学习的内容列表中……出于好奇:在根级别添加单独的文件夹有什么必要?为什么不按照最佳实践建议使用它呢?这是一种公共依赖吗?其他项目也需要这种公共依赖吗?@Nick这确实是一种公共依赖,它除了被应用程序使用之外,还被服务器上的cron直接使用。