如何在PHP自动加载中区分供应商类和本机类?(How to distinct vendor classes and native classes in PHP autoload?)

编程入门 行业动态 更新时间:2024-10-26 22:19:09
如何在PHP自动加载中区分供应商类和本机类?(How to distinct vendor classes and native classes in PHP autoload?)

如何在PHP自动加载中区分矢量类和本机项目类? 看到文件和命名空间结构的一部分:

app/ app/Models/ app/Models/User.php app/Contoller/ app/Contoller/Login.php vendor/ vendor/company/package/Helper.php

现在PSR-4说如果需要包含一个类,自动加载必须包含来自供应商的类,那么如何包含我的本机项目类,比如在控制器中包含模型? 例如以下代码:

$user = new App\Models\User();

autoload在供应商文件夹中查找“App”公司(文件夹),一种方法可能是在自动加载中使用某些条件,如果名称空间以“App”开头在本机项目中查找类,它是标准方法吗?

第二个,那么,供应商中有一个包,它的公司名称是供应商名称中的“App”,完整的方式是什么?

How to distinct vector classes and native project classes in PHP autoload? see a part of the file and namespace structure:

app/ app/Models/ app/Models/User.php app/Contoller/ app/Contoller/Login.php vendor/ vendor/company/package/Helper.php

Now PSR-4 says if there a class is needed to be included, autoload must include it from vendor, so how can I include my native project classes like including a model in a controller? For Example following code:

$user = new App\Models\User();

autoload looks for "App" company (folder) in vendor folder, one approach could be use some conditions in autoload and if the namespace starts with "App" look for class in native project, is it the standard approach?

Second one, what about this, there is a package in vendor which its company name is "App" in vendor name, what is complete way?

最满意答案

最好的解决方案是在composer.json文件中设置PSR-4自动加载,如下例所示:

// Part of composer.json "autoload" : { "psr-4" : { "App\\" : "app/" } }

现在您不需要额外的自动加载,Composer自动加载将为您完成。 当请求的类位于App命名空间下时,Composer会在app文件夹中查找它,因为它在上面的composer.json文件中设置。

The best solution is setting PSR-4 autoloads in your composer.json file as the following example illustrates:

// Part of composer.json "autoload" : { "psr-4" : { "App\\" : "app/" } }

Now you don't need to extra autoload, the Composer autoload will do it for you. When the requested class is under App namespace, Composer looking for it in the app folder as it set in the composer.json file above.

更多推荐

本文发布于:2023-08-03 22:23:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1401142.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:本机   供应商   加载中   如何在   native

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!