php - Symfony2 - 使用第三方库 (SSRS)

标签 php symfony reporting-services

也许是个愚蠢的问题,我是 Symfony2 的新手,我正在将它用于我的一个项目。
我希望能够使用第三方库,即 SSRSReport (SSRS 报告的 API)。

我已将库放入Symfony/vendor/ssrs/lib/Ssrs/src
这里定义了很多类,我不需要自动加载它们。

我根本不知道如何从 Controller 请求和调用它们。

这肯定行不通

require_once '/vendor/ssrs/lib/Ssrs/src/SSRSReport.php';
class DefaultController extends Controller
{
    public function viewAction()
    {
        define("UID", "xxxxxxxx");
        define("PASWD", "xxxxxxxx");
        define("SERVICE_URL", "http://xxx.xxx.xxx.xxx/ReportServer/");
        $report = new SSRSReport(new Credentials(UID, PASWD), SERVICE_URL);
        return $this->render('myBundle:Default:view.html.twig'
            , array('report' => $report)
        );
    }
}
此处使用的

SSRSReport()Credentials() 是 API 中包含的许多类中的两个。

最佳答案

首先,我不建议将非 symfony 管理的库放入 /vendors。由于您正在管理此库,因此请将其放入 /src

其次,当使用不是命名空间的类时(即,在根命名空间中),请确保正确引用它们,否则 PHP 将查找当前命名空间(在本例中,是您的 Controller 命名空间)

第三,快速而肮脏的解决方案是正确地包含来自 Controller 的文件:

class DefaultController extends Controller
{
    protected function includeSsrsSdk()
    {
      require_once(
          $this->container->getParameter( 'kernel.root_dir' )
        . '/../src/ssrs/lib/Ssrs/src/SSRSReport.php'
      );
    }

    public function viewAction()
    {
        $this->includeSsrsSdk();
        define("UID", "xxxxxxxx");
        define("PASWD", "xxxxxxxx");
        define("SERVICE_URL", "http://xxx.xxx.xxx.xxx/ReportServer/");
        $report = new \SSRSReport(new \Credentials(UID, PASWD), SERVICE_URL);
        return $this->render('myBundle:Default:view.html.twig'
            , array('report' => $report)
        );
    }
}

但这会锁定您将库包含到这个 Controller 中的逻辑。您可以为执行此操作的 SDK 制作一个单独的包装器,甚至可以将其注册为服务。

关于php - Symfony2 - 使用第三方库 (SSRS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883920/

相关文章:

php - FOSUserBundle BCryptPasswordEncoder 加盐

reporting-services - SSRS CSV 导出末尾的空行

symfony - 多个模板中的 Twig Assetic 样式表

javascript - 如何在 CodeIgniter 中创建自动完成搜索字段?

php - 为 seo 优化和 google 引用重写 url

PHP SQL语法错误设置变量

php - 如何使用 Doctrine 在基于 Symfony2 的网站上创建数据库?

reporting-services - Business Objects 4“OpenDocument” URL不适用于参数

java - 使用 ReportingService2010 使用 SSRS Web 服务在 JAVA 中生成 PDF 报告

php - Windows Azure 中来自 PHP 的电子邮件