knplabs/knp-media-exposer-bundle

此包已被弃用,不再维护。未建议替代包。

允许在Symfony项目中轻松使用媒体曝光库

安装次数: 2,219

依赖者: 0

建议者: 1

安全: 0

星标: 8

关注者: 30

分支: 2

开放问题: 0

类型:symfony-bundle

dev-master 2012-04-24 15:50 UTC

This package is auto-updated.

Last update: 2022-09-23 13:39:39 UTC


README

KnpMediaExposerBundle为您的Symfony项目提供了MediaExposer库的简单集成。

MediaExposer库

MediaExposer库允许您通过计算URL或路径来轻松将媒体暴露给应用程序的用户。

您可以在官方页面上找到更多信息。

安装

该包依赖于MediaExposer库,因此您需要将其复制到您的Symfony项目的vendor/media-exposer目录下。

获取源代码

使用deps文件

您可以将以下行添加到您的deps文件中

[media-exposer]
    git=http://github.com/KnpLabs/MediaExposer.git

[KnpMediaExposerBundle]
    git=http://github.com/KnpLabs/KnpMediaExposerBundle.git
    target=/bundles/Knp/Bundle/MediaExposerBundle

然后运行以下命令

./bin/vendors install

使用git子模块

您可以使用以下git命令将库和包添加为子模块

git submodule add https://github.com/KnpLabs/MediaExposer.git vendor/media-exposer
git submodule add https://github.com/KnpLabs/KnpMediaExposerBundle.git vendor/bundle/Knp/Bundle/MediaExposerBundle

更新自动加载器 & 核心模块

一旦您将源代码复制到您的项目中,您必须更新您的自动加载器

<?php // app/autoload.php

$loader->registerNamespaces(array(
    // ... other namespaces
    'Knp\\Bundle'   => __DIR__.'/vendor/bundles',
    'MediaExposer'  => __DIR__.'/vendor/media-exposer/src'
));

最后,将包注册到您的内核中

<?php // app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ... the other bundles
        new Knp\Bundle\MediaExposerBundle\KnpMediaExposerBundle()
    );
}

现在您可以继续进行配置。

配置

为了“绝对化”URL,媒体曝光需要将基础URL附加到相对源。默认情况下,将使用请求的主机,但您也可以在配置中指定它

# app/config/config.yml

knp_media_exposer:
    base_url:   'http://the-base.url'

注册解析器

安装和配置完成后,媒体曝光几乎可以使用了。但仍有一个步骤:注册您的解析器。

使用此包,将解析器添加到曝光器就像注册一个具有knp_media_exposer.resolver标签的服务一样简单。

以下是yml中解析器服务注册的示例

services:
    foo.bar_resolver:
        class:  'Foo\BarResolver'
        tags:
            - { name: 'knp_media_exposer.resolver' }

还可以指定可选的priority

services:
    foo.bar_resolver:
        class:  'Foo\BarResolver'
        tags:
            - { name: 'knp_media_exposer.resolver', priority: 10 }

注意:请记住,最高优先级是第一个,最低优先级是最后一个。

使用

Twig集成

该包注册了一个Twig扩展,在模板中添加了使用Exposer所需的代码。

media_has_source函数

media_has_source函数指示解析器是否可以为给定的媒体返回源。

{{ media_has_source(picture) }}

您可以将选项哈希作为第二个参数传递

{{ media_has_source(picture, {'foo':'bar'}) }}

media_source 函数

media_source 函数返回给定媒体的源

{{ media_source(picture) }}

您可以将选项哈希作为第二个参数指定

{{ media_source(picture, {'foo':'bar'}) }}

如果您想使 Exposer 生成绝对源(URL),可以通过将 true 作为第三个参数强制执行

{{ media_source(picture, {}, true) }}

media_has_path 函数

media_has_path 函数指示解析器是否可以为给定媒体返回一个路径

{{ media_has_path(picture) }}

可以作为第二个参数传递一个选项哈希

{{ media_has_path(picture, {'foo':'bar'}) }}

media_path 函数

media_path 函数负责返回给定媒体的路径

{{ media_path(picture) }}

您也可以将选项作为第二个参数指定

{{ media_path(picture, {'foo':'bar'}}

PHP 模板集成

该包为 PHP 模板引擎注册了一个扩展。您可以在模板中使用 $view['media_exposer'] 访问它。它仅包含 Exposer 实例的代理方法

  • ->getSource($media [, array $options [, $forceAbsolute]])
  • ->hasSource($media [, array $options])
  • ->getPath($media [, array $options])
  • ->hasPath($media [, array $options])