我想在Laravel中创建一个服务器提供程序。
我希望提供此服务以在其自己的命名空间下生效。
Path\To\My\AwesomeServiceProvider
我应该把这堂课放在哪里?通常我会在
中删除自定义类app/models
但是,在app/models
执行之后,app/start/global.php
才会添加为自动加载源。这对服务提供商来说太晚了,因为所有服务提供商都在bootstrap/start.php
注册。
有没有办法创建服务提供者而不将该类放在作曲家的vendor
文件夹中,或者用你的composer.json
类图谱进行编辑?
换句话说,Laravel是否会在加载bootstrap/start.php
之前自动加载类,而不需要额外的编写器配置。
(对于不可避免的“你为什么不这样做”,我想避开作曲家的原因是我正试图找出Laravel中服务提供商所需的最低代码和配置)
答案 0 :(得分:1)
你不需要修改供应商内部的任何东西。 您只需要为项目的composer.json中的新类或目录定义一种可能的自动加载类型。
https://getcomposer.org/doc/04-schema.md#autoload
作为替代,你可以直接使用自动加载的普通php实现 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md