tomatom/picture-bundle
Composer 安装命令:
composer require tomatom/picture-bundle
包简介
Symfony bundle
README 文档
README
Symfony Bundle for easy <picture>s :)
define breakpoints and use your assets as picture sources, without annoying image conversions and long code blocks
Dependencies:
-
vipsthumbnailfrom libvips -
symfony/framework-standard-edition ">=2.8|~3.3"
Installation:
-
you need
vipsthumbnail!, (install bysudo apt install libvips-tools, or you can compile your own or download here) -
create project with Symfony framework
-
composer require tomatom/picture-bundle "1.4"
-
add bundle to AppKernel.php:
new TomAtom\PictureBundle\TomAtomPictureBundle(),
-
update db schema, install assets and clear cache ... and it's done!
-
optionally add parameters to parameters.yml(.dist) (define your own breakpoints etc.):
# these are defaults parameters: tt_picture_breakpoints: [575, 768, 991, 1199, 1690, 1920] tt_picture_converted_dir: '%kernel.project_dir%/web/tt_picture' tt_picture_jpeg_quality: 65
Usage:
- in template, call (jpg, png and gif are supported):
{# as function #} {{ picture(asset('path/to/asset.jpg')) }} {# as filter #} {{ asset('path/to/asset.jpg') | picture }}
<picture> is generated and image is converted on first render
- you can define custom breakpoints and/or jpeg quality for each image, when needed:
{# as function with custom breakpoints defined per image #} {{ picture(asset('path/to/asset.jpg'), [300, 600, 1200]) }} {# as function with custom jpeg quality defined per image #} {{ picture(asset('path/to/asset.jpg'), null, 99) }} {# as filter with custom breakpoints defined per image #} {{ asset('path/to/asset.jpg') | picture([300, 600, 1200]) }} {# as filter with custom jpeg quality defined per image #} {{ asset('path/to/asset.jpg') | picture(null, 99) }} {# use with SonataMedia images #} {{ mediaUrl(entity.media, 'reference') | picture }}
- you can retrieve converted images in PHP code too (in case you need to serve images from API, etc.), like this:
// asset url - same as in Twig template $originalAssetUrl = $this->container->get('assets.packages')->getUrl('bundles/app/images/test.jpg'); // get PictureHelper from container $pictureHelper = $this->container->get('tomatom_picture.util.picture_helper'); // get array of all converted images for asset $allConveretedImages = $pictureHelper->getAllConverted($originalAssetUrl); // or specific image for breakpoint $convertedAssetUrl = $pictureHelper->getAssetUrl($originalAssetUrl, 1920); $convertedFilePath = $pictureHelper->getFilePath($originalAssetUrl, 1920); // convert images if not exists and get array of converted images (for global breakpoints) $allConveretedImages = $pictureHelper->convert($originalAssetUrl); // convert images if not exists and get array of converted images (custom breakpoints and jpeg quality) $allConveretedImages = $pictureHelper->convert($originalAssetUrl, [300, 600, 900], 70);
Todo:
- jpeg quality as param
- jpeg quality as param in template
- breakpoints as param in template
- cmd for batch converting
- converting of images other than assets (like from 'web/uploads', etc)
- helper for retrieving converted images in controller / cmd / service..
- helper for SonataMedia image path
tomatom/picture-bundle 适用场景与选型建议
tomatom/picture-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 48 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 10 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「image bundle」 「symfony picture」 「picture bundle」 「symfony image」 「symfony srcset」 「srcset bundle」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tomatom/picture-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tomatom/picture-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tomatom/picture-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
2lenet/EasyAdminPlusBundle
The bundle for easy using json-rpc api on your project
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
Provide a way to secure accesses to all routes of an symfony application.
DMS Meetup API Bundle, enables Meetup API clients in services
统计信息
- 总下载量: 48
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPLV2
- 更新时间: 2017-10-24
