如何从包中自动加载包的类?

时间:2019-12-09 08:48:11

标签: php composer-php

我的composer软件包的应用程序布局如下

some-application
├── index.php
└── composer.json
└── vendor/my/package
              ├── composer.json
              └── src
                  ├── Foobar
                  │   └── style.css.php
                  └── Bar
                      ├── Moo.php
                      └── Baz.php

index.php在其html标记中使用style.css.php作为样式表。样式表是一个php文件,因为样式需要动态呈现。因此,客户端浏览器直接访问style.css.php,而无需传递包含自动加载器的index.php

现在,我想访问Moo中的Bazstyle.css.php,但是为我的程序包定义某种允许自动加载程序的自动加载器的正确方法是什么?

我只能找到有关应用程序将包括的自动装带器的信息。但是,如果我绕过应用程序的自动加载器调用怎么办?

非常感谢任何建议。

1 个答案:

答案 0 :(得分:3)

要自动加载composer软件包类,您只需要以某种方式加载自动加载器即可。

在您的脚本中,您可以说:

<?php

$path = file_exists('vendor/autoload.php') ? 'vendor/autoload.php' : '../../../autoload.php';
require_once $path;

use Bar\Moo;

$moo = new Moo();

当软件包包含在应用程序中时,这将加载应用程序的自动加载器,或者在开发软件包时(例如,开发人员)加载软件包自己的自动加载器。运行测试。