【发布时间】:2022-01-05 21:36:44
【问题描述】:
我使用的是 Symfony 5。我使用 composer 在项目中添加了官方推荐的 PHP SDK https://github.com/facebookarchive/php-graph-sdk。我有一个控制器,我尝试调用它:
class FacebookController extends AbstractController
{
/**
* @var Facebook
*/
private $facebook;
public function __construct(Facebook $facebook)
{
$this->facebook = $facebook;
}
public function indexAction()
{...}
}
但是当我运行这段代码时,它会说:
Cannot autowire service "App\Controller\FacebookController": argument "$facebook" of method "__construct()" references class "Facebook\Facebook" but no such service exists.
如何让 symfony 的 Facebook 类“可见”?
【问题讨论】:
-
通常你会使用 Symfony 世界中已知的捆绑包来包装 facebook 库。我进行了快速搜索,没有找到任何最新的内容,但您仍然可以查看它们以了解如何制作可注射的 facebook 服务。请注意,即使您链接的包裹看起来也不是在 3 年左右的时间里被触摸过。
-
你可以很容易地让一个不在默认命名空间/配置中的类可用于auto wiring,但是除非你也定义它们,否则配置和进一步的依赖项将不可用,这是什么捆绑包。最简单的解决方法是在主代码中明确地将它们用作常规 PHP 类,在其中调用
new。 -
你可以尝试使用composer自动加载文件getcomposer.org/doc/04-schema.md#files
标签: php facebook symfony facebook-graph-api