我仍然是symfony的新手,并尝试将以下库包含到我的项目中,以便我可以使用$myThing = $container->get('myThing');
来访问它
有问题的图书馆是:https://github.com/gridiron-guru/FantasyDataAPI
我已经将库下载并通过作曲家需要进入我的供应商目录:
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.4.*",
...
"gridiron-guru/fantasy-data-api" : "1.*"
},
我已添加到我的app \ config.yml:
parameters:
fantasyapi.key: **********************c5o67
services:
my_mailer:
class: FantasyDataAPI
arguments: ["%fantasyapi.key%"]
当我运行容器时:debug我看到:
fantasy_api container FantasyDataAPI
我在项目根目录中创建了一个名为play.php的文件:
<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
$loader = require_once __DIR__.'/app/bootstrap.php.cache';
Debug::enable();
require_once __DIR__.'/app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$kernel->boot();
$container = $kernel->getContainer();
$container->enterScope('request');
$container->set('request', $request);
/** all the setup is complete!! */
$client = new FantasyDataAPI\Client( "**********************c5o67" );
$result = $client->FantasyPlayers([]);
var_dump($result)
这会产生所需的结果但不使用我的服务。
如果我将其更改为我的服务:
$client = $container->get('fantasy_api');
$result = $client->FantasyPlayers([]);
var_dump($result);
我收到错误:
PHP Fatal error: Class 'FantasyDataAPI' not found in D:\Ampps\www\NFLtest\app\cache\dev\appDevDebugProjectContainer.php on line 729
PHP Stack trace:
PHP 1. {main}() D:\Ampps\www\NFLtest\play.php:0
PHP 2. Symfony\Component\DependencyInjection\Container->get() D:\Ampps\www\NFLtest\play.php:24
PHP 3. appDevDebugProjectContainer->getFantasyApiService() D:\Ampps\www\NFLtest\app\bootstrap.php.cache:2059
Fatal error: Class 'FantasyDataAPI' not found in D:\Ampps\www\NFLtest\app\cache\dev\appDevDebugProjectContainer.php on line 729
Call Stack:
0.0010 128760 1. {main}() D:\Ampps\www\NFLtest\play.php:0
0.2940 4392496 2. Symfony\Component\DependencyInjection\Container->get() D:\Ampps\www\NFLtest\play.php:24
0.2940 4392704 3. appDevDebugProjectContainer->getFantasyApiService() D:\Ampps\www\NFLtest\app\bootstrap.php.cache:2059
我确定它与命名空间有关,是否需要更改库中的某些内容?
如何将此库添加为服务?
**** ****解决 确实是命名空间的问题感谢David
添加FantasyDataAPI / Client解决了这个问题。
答案 0 :(得分:0)
您没有将完整的命名空间提供给要实例化的类。
使用FantasyDataAPI\Client
代替FantasyDataAPI
:
services:
my_mailer:
class: FantasyDataAPI\Client
arguments: ["%fantasyapi.key%"]