knplabs / knp-media-exposer-bundle
允许在Symfony项目中轻松使用媒体曝光库
Requires
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])