如何在Symfony2 Controller中访问Cloudinary的帮助方法?

时间:2013-11-29 11:28:36

标签: symfony cloudinary

我正在使用Cloudinary来管理我的Sf2应用程序中的直接图像上传。

有一个名为“cl_image_upload_tag”的Cloudinary辅助函数可以生成上传表单。

我需要在我的控制器中运行该功能,并在我的模板中将结果显示为原始代码。但是我无法访问控制器中的功能

$cloud_form = \Cloudinary\Uploader::cl_image_upload_tag('image_id', array("callback" => $this->get("router")->generate("cloudinary_callback")));

(我将在Twig中输出$ cloud_form为{{cloud_form | raw}})

我认为这是命名空间问题,但我无法使其工作,它得到“错误:调用未定义的方法”。谢谢!

更新:这是自动加载文件:

<?php

use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;

/**
 * @var $loader ClassLoader
 */
$loader = require __DIR__.'/../vendor/autoload.php';

AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

return $loader;

2 个答案:

答案 0 :(得分:1)

cl_image_upload_tag不是Uploader类的方法,它只是Uploader.php中定义的函数,它与保存Uploader类的文件相同。

假设您在控制器顶部包含Uploader.php,您可以直接调用该函数:

$cloud_form = \cl_image_upload_tag('image_id', array("callback" => $this->get("router")->generate("cloudinary_callback")));

如果您使用composer来提供Cloudinary软件包,Composer可能会将这些功能添加到您的应用程序中,而无需在控制器中包含该文件。

答案 1 :(得分:1)

尝试按如下方式修改app/autoloader.php文件

$loader->registerNamespaces(array(
    'Cloudinary' => __DIR__.'/../vendor/path/to/Cloudinary/source/file',
));

从现在开始,您应该可以将您的班级称为Cloudinary

use Cloudinary; // example
use Cloudinary\Uploader; //other example