bernhard-webstudio / placeholder-bundle
Symfony 扩展包,用于生成图片的占位符
Requires
- php: >=8.0
- symfony/asset: ^v5.2.4|^v6.1.0
- symfony/config: ^v5.2.4|^v6.1.0
- symfony/console: ^v5.2.4|^v6.1.0
- symfony/dependency-injection: ^v5.2.4|^v6.1.0
- symfony/finder: ^v5.2.4|^v6.1.0
- symfony/framework-bundle: ^6.0.4
- symfony/http-kernel: ^6.1.12
- symfony/process: ^v5.2.4|^v6.1.0
- symfony/yaml: ^v5.2.4|^v6.1.0
Requires (Dev)
- doctrine/annotations: ^2.0
- php-coveralls/php-coveralls: ^v2.2.0
- phpmd/phpmd: ^2.8.1
- phpstan/phpstan: ^1.2.0
- rector/rector: ^0.12.5
- sensio/framework-extra-bundle: ^v6.1.1
- squizlabs/php_codesniffer: ^3.5.3
- symfony/browser-kit: ^v5.2.4|^v6.1.0
- symfony/css-selector: ^v5.2.4|^v6.1.0
- symfony/phpunit-bridge: ^5.2.4|^v6.1.0
- symfony/routing: ^6.2
- symfony/templating: ^v5.2.4|^v6.1.0
- symfony/twig-bundle: ^v5.2.4|^v6.1.0
- twig/twig: ^v3.3.2
README
这个包是什么?
如果你在寻找一种简单的方式来为你的项目生成漂亮的占位符或缩略图,请使用这个包。
你是否提供一个包含大量图片的网站?你是否使用带有灰色图像的懒加载器?那么这个包正是为你或你的网站准备的!
根据你的配置和本地环境,你可以让这个包返回使用 Primitive 或 sqip 生成的占位符。
安装
你需要安装你想要使用的服务。请参考上述链接的网页以获取安装指南。要安装此包,请参考以下指南。
使用 Symfony Flex 的应用程序
(此安装类型尚不支持。请参考下一步安装说明或创建配方。) 打开命令行,进入项目目录,并执行
$ composer require bernhard-webstudio/placeholder-bundle
未使用 Symfony Flex 的应用程序
步骤 1: 下载包
打开命令行,进入项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require bernhard-webstudio/placeholder-bundle
此命令要求你全局安装了 Composer,请参阅 Composer 文档的 安装章节。
步骤 2: 启用包
然后,通过将其添加到项目 app/AppKernel.php 文件中注册的包列表中来启用该包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new BernhardWebstudio\PlaceholderBundle\BernhardWebstudioPlaceholderBundle(), ); // ... } // ... }
配置
标准配置,如常规的 Symfony 扩展包一样可以覆盖,如下所示
bewe_placeholder: service: 'bewe_placeholder.generator.primitive' bin: 'primitive' node_bin: 'node' iterations: 10 output_path: ~ load_paths: - "."
如果你更喜欢使用 sqip 或甚至使用自己的服务,你可以将其更改为 bewe_placeholder.generator.sqip,只要它实现了 BernardWebstudio\PlaceholderBundle\Services\PlaceholderGeneratorInterface。
用法
在控制器或服务中
要获取图像占位符的路径,请请求 bewe_placeholder.provider 服务。在此对象上,使用你的图像路径作为参数调用 getPlaceholder($imagepath)。作为第二个参数,你可以传递你想要的返回模式,如 'raw'、'base64'、'url' 或 'path'。默认为 'path'。
要强制生成图像,可以使用服务 bewe_placeholder.generator。将输入和输出路径传递给函数 generate($input, $output) 作为参数。请注意,服务不必将文件精确输出到输出路径。相反,它们通常会附加 .svg。这取决于服务:调用 getOutputExtension 获取扩展名。
在 Twig 中
使用 placeholder Twig 过滤器。将其应用于图片路径。您可以可选地传递额外参数,例如 'raw'、'base64'、'url' 或 'path' 来指定您希望如何服务图片。'raw' 返回文件内容,'base64' 获取 base64 编码的文件内容,'url' 返回优化的 src-attribute(svg 作为 svg,其他图片作为 base64,都准备好作为 src= 属性值使用),使用 'path' 您将获得占位图图像的路径。如果您只对图像的 URL 感兴趣,请参阅下一节。
请只提供 URL
如果您配置了包含此包提供的路由文件,您可以使用 bewe_placeholder 参数生成一个名为 bewe_placeholder 的路由。此 URL 将为您提供占位图,默认为懒加载生成。例如,可以将路由文件包含在您的 routing.yml 中,如下所示
bewe_placeholder_urls: resource: "@BernhardWebstudioPlaceholderBundle/Resources/config/routing.yaml"
预生成图片
如果您对性能有顾虑,请使用 bewe:placeholder:prepare 命令生成 load_paths 中所有图片的占位图。选项 --dry 允许您查看将生成哪些图片,并可用于测试您的配置。
贡献
欢迎贡献力量。只需打开一个 PR!
许可证
bernhard-webstudio/placeholder-bundle 企业版
作为 Tidelift 订阅的一部分提供
bernhard-webstudio/placeholder-bundle 的维护者以及成千上万的其他软件包维护者正在与 Tidelift 合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,并提高代码健康性,同时为确切使用的依赖项维护者付费。了解更多信息。[了解更多](https://tidelift.com/subscription/pkg/packagist-bernhard-webstudio-placeholder-bundle?utm_source=packagist-bernhard-webstudio-placeholder-bundle&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)。