在单个文件中使用类的作曲家自动加载

 逍遥子 发布于 2022-12-27 13:46

我正在尝试使用一个使用命名空间但是有一部分代码自动生成的库,因此它们在一个文件中生成多个类.

我们使用composer,我试图像这样在psr-4中添加名称空间定义

"name\space\preffix\": "folder/where/the/file/is"

但是只有一个文件包含自动加载中的所有类都找不到类,我想,它会搜索与您尝试加载的类名相同的文件.有没有办法让作曲家自动加载知道这种情况并使用自动加载类?

1 个回答
  • 除了PSR-4(或PSR-0)之外,您还有两个其他选项:

      classmap - 这将扫描包含的所有类的目录或文件,并将结果放入文件中的PHP数组中.这需要在正在扫描的文件发生更改时转储自动装带器.

      files - 每当包含Composer自动加载器时,都会包含所提到的文件.

    因此,您可以使用自动生成的类添加文件,使用类图自动加载器进行扫描,该文件会在第一次使用其中的任何类时加载该文件,或者您可以将其添加到文件自动加载中,这将始终是包括在内,无论是否正在使用这些课程.

    如果考虑性能,除非类的数量巨大且类中的代码量很小,否则首选替代方案.在类图中包含大量的小类可能比首先加载它们的开销更大.

    在这些类中有足够的代码,并且它们并不总是被使用,NOT总是加载它们所节省的数量或内存可能会更快.

    如有疑问:测量它.并考虑将类拆分为单个文件,如果性能损失太大,则使用PSR-4.

    2022-12-27 13:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有