如何使用Silex ServiceProvider使用自定义类



我觉得我已经搜索了整个互联网,但似乎无法弄清楚这一点。我正在使用Silex(最新版本),似乎无法弄清楚如何使用Silex的ServiceProvider系统返回类的实例。

我确实知道如何创建基本的服务提供商。

我不知道该怎么做是如何让此服务提供商使用自定义类。我已经尝试了我能想到或在网络上找到的一切。问题的一部分是,Silex关于此的文档并不是很广泛,并且在对它的完成情况发生了很大的更改之前,都要求/回答有关此类问题的大多数问题,因此答案不是最新的。

所以,简短地说:我想使用silex的$ app ['myclass']类型系统访问我的课程,以便我可以做$ app ['myclass'] -> myMethod()。

之类的事情。

我挂断的地方就是这样,虽然我可以创建一个服务提供商,但我不知道如何让服务提供商识别该类。我尝试使用Composer Auto-Load PSO-0设置了整个姓名空间,并尝试使用myClass/myclass型东西。

哈哈,基本上,因为文档很少,所以我做错了任何部分。

有人会写一个当前的逐步过程,以将自定义库/类连接到$ app variable吗?我认为这不仅对我有帮助,而且对其他帮助。谢谢!

在我看来,就像您在班级加载方面有问题。这是Silex中的autoload服务来处理的。但是,该服务被删除,有利于作曲家的自动加载。

您在正确的轨道上指定composer.json中的自动加载。如果您不熟悉作曲家,请阅读引言。有关自动加载方式的详细信息,请参见基本用法章节的自动加载部分。

我将在这里给您简短的版本。确保您的文件名符合PSR-0命名标准。将其添加到您的composer.json

{
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
}

您需要将Acme用命名空间和src替换为课程的基本目录。例如,AcmeFooBar类位于src/Acme/Foo/Bar.php中。

然后运行 php composer.phar update以重新启动自动加载文件,您应该能够访问您的课程。

最新更新