【发布时间】:2015-04-30 08:09:42
【问题描述】:
我想在 symfony2 项目中使用这个 php 类:
https://github.com/Moinax/TvDb
就像 FosUserBundle:
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md
我设法通过 composer 在我的供应商目录中安装了该软件包:
composer moinax/tvdb
我现在需要做什么?
请注意,我的文件夹结构(由 composer 自动创建)现在是:
vendor/moinax/tvdb/(content of the github project)
注意:
在简单的 php(没有 Symfony2)中,这是最基本的用法示例的代码:
// examples/index.php (look at the github project for folder structure)
include __DIR__ . '/settings.php';
include __DIR__ . '/../src/Moinax/TvDb/Http/HttpClient.php';
include __DIR__ . '/../src/Moinax/TvDb/Http/CurlClient.php';
include __DIR__ . '/../src/Moinax/TvDb/CurlException.php';
include __DIR__ . '/../src/Moinax/TvDb/Client.php';
include __DIR__ . '/../src/Moinax/TvDb/Serie.php';
include __DIR__ . '/../src/Moinax/TvDb/Banner.php';
include __DIR__ . '/../src/Moinax/TvDb/Episode.php';
use Moinax\TvDb\Client;
$apiKey = 'YOURAPIKEY';
$tvdb = new Client("http://thetvdb.com", $apiKey);
$tvdb->getSerie(75710);
我想在 AcmeDemoBundle 的控制器内做同样的事情...换句话说:从 AcmeDemoBundle 内的 DefaultController,我想基于 moinax/tvdb 脚本中定义的类创建一个 $tvdb = new Client("http://thetvdb.com", $apiKey); 对象保存为供应商。
【问题讨论】:
-
你试过了吗?根据您发布的内容,作曲家应该已经为您处理了自动加载。您可以忘记示例中的所有包含内容。它应该可以工作。
-
我设法让它工作,但仍有一些事情可能会改进......问题:如果我将这个类保存在供应商文件夹中(默认)我需要使用什么路径“使用”声明?如何包含位于供应商文件夹中的资产?
-
您在问题中显示的名称空间完全相同。 vendor/autoload.php 负责将命名空间映射到特定的文件夹。作曲家的一部分魔力。
-
@Cerad 你是对的......现在一切正常。请发表您的解释作为答案,我会接受。