定制 bcc/extra-tools-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bcc/extra-tools-bundle

Composer 安装命令:

composer require bcc/extra-tools-bundle

包简介

A set of extra tools in a bundle for Symfony2: a translation extractor, a locale date parser/formatter, a unit converter...

README 文档

README

It a bundle that contains some usefull symfony2 tools.

Build Status

Warning

The bcc:trans:update command had been merged into the framework and thus won't be maintained here anymore. The new name is translation:extract.

Features:

  • a bcc:trans:update command that extract all your missing i18n message from your twig templates and saves into yaml, xliff, php or pot translation files.
  • a twig extension that translates dates and contries
  • a date formatter that formats and translates dates and also parses multiple forms of localized date string
  • a unit converter that is ignly extensible and convert units

Installation and configuration:

Get the bundle

Add to your /deps file :

[BCCExtraToolsBundle]
    git=http://github.com/michelsalib/BCCExtraToolsBundle.git
    target=/bundles/BCC/ExtraToolsBundle

And make a php bin/vendors install.

Register the namespace

<?php

    // app/autoload.php
    $loader->registerNamespaces(array(
        'BCC' => __DIR__.'/../vendor/bundles',
        // your other namespaces
    ));

Add ExtraToolsBundle to your application kernel

<?php

    // app/AppKernel.php
    public function registerBundles()
    {
        return array(
            // ...
            new BCC\ExtraToolsBundle\BCCExtraToolsBundle(),
            // ...
        );
    }

Register the twig extension

If you want to use the twig extension you must have the apache intl module installed.

Add to your config.yml:

#BCC configuration
services:
    bcc.twig.extension:
        class: BCC\ExtraToolsBundle\Twig\TwigExtension
        tags:
            -  { name: twig.extension }

Usage examples:

bcc:trans:update command example

You now have the new command. You can use it as follows:

  • To extract messages from your bundle and display in the console:

    bcc:trans:update --dump-messages fr MyBundle

  • You can save them to the MyBundle\Resources\translations directory:

    bcc:trans:update --force fr MyBundle

  • In another language:

    bcc:trans:update --force en MyBundle

  • Specify the output format with the --output-format option (either yml, xliff, php or pot):

    bcc:trans:update --output-format="xliff" --force en MyBundle

  • Change the prefix used for newly added messages with the --prefix option:

    bcc:trans:update --output-format="xliff" --force --prefix='myprefix' en MyBundle

Twig extensions examples

Translate a date value :

  • {{ user.createdAt | localeDate }} to have a medium date and no time, in the current locale

  • {{ user.createdAt | localeDate('long','medium') }} to have a long date and medium time, in the current locale

Translate a contry :

  • {{ user.country | country }} to have the country, in the current locale

  • {{ user.country | country('c ountry does not exist') }} Define the returned value if the country does not exist

DateFormatter examples

Get the service:

<?php

$dateFormatter = $container->get('bcc_extra_tools.date_formatter');

Parse a date:

<?php

$date = $dateFormatter->parse('November 1, 2011', 'en'); // obtains a datetime instance

Format a date:

<?php

echo $dateFormatter->format($date, 'long', 'none', 'fr'); // echoes : "1 novembre 2011"

Note that the locale parameter (here 'fr' and 'en') are optionnal, default is the current locale.

Unit converter examples

Get the service:

<?php

$unitConverter = $container->get('bcc_extra_tools.unit_converter');

Convert a value:

<?php

echo $unitConverter->parse(1000, 'm', 'km'); // echoes : 1

Guess the source unit:

<?php

echo $unitConverter->parse('1h', 'm'); // echoes : 60

More examples in the tests: ./Tests/Util/UnitConverterTest.

bcc/extra-tools-bundle 适用场景与选型建议

bcc/extra-tools-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 58.99k 次下载、GitHub Stars 达 93, 最近一次更新时间为 2012 年 03 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「datetime unit converter formatter parser」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 bcc/extra-tools-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 bcc/extra-tools-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 bcc/extra-tools-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 58.99k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 93
  • 点击次数: 25
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 93
  • Watchers: 9
  • Forks: 16
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2012-03-03