作曲家自动加载与PSR-4分类



我正在尝试更改我之前写过的自动加载系统。我正在使用作曲家,目前我只使用一个带有类图的库自动加载。

"autoload": {
 "classmap": ["libs/"]
}

我想为其余的文件添加一个PSR-4加载程序,并能够在没有名称空间的情况下调用LIBS下的文件,并且不用"使用"它们,就像Laravel中的别名一样。这就是我要做的:

"autoload": {
 "classmap": ["libs/"],
 "psr-4": {
  "App\": ""
 }
}

因此,最终如果在" libs"中,我将其称为:

Session::get('anything')

,但是现在尝试添加psr-4并从名称段类中调用

之后
namespace Appmodels;
Class User{
 function get(){
  return Session::get('anything');
 }
}

它将不再起作用,因为它在用户名称空间中寻找会话。我知道有很多框架将其实现为箱子。必须需要。

我想为其余文件添加一个PSR-4加载程序,并能够在没有名称空间的情况下调用libs下的文件,而无需"使用"它们,就像Laravel中的类似别名。

,如果不添加use或以Backslash 开头,您将无法使用类。这与您加载这些类别的方式无关,而是PHP本身的基本要求 - 因此,无论您如何设计自动加载,都无法解决。

所注释的,添加了后拔作品,但这是所需的最低限度:

namespace Appmodels;
Class User{
  function get(){
    return Session::get('anything');
  }
}

我最终写了另一个班级,这些班级使我想要的任何类别的类都可以召唤出来。

您可以在这里看到它:

https://github.com/shahafan/samvc-app/blob/master/master/config/aliases.php

基本上,我只是使用PHP class_alias函数,因此我可以在使用它们之前加载所需的所有类。我认为Laravel以同样的方式进行。

相关内容

  • 没有找到相关文章

最新更新