namshi / utility-bundle
一系列我们发现非常实用并用于我们Web系统中的工具。
1.1.0
2014-05-01 06:44 UTC
This package is not auto-updated.
Last update: 2024-09-09 11:51:49 UTC
README
这个包提供了一些基本的、有点傻的工具,我们在Symfony2应用中广泛使用它们。
安装
可以通过composer轻松安装此包("namshi/utility-bundle": "dev-master"
)。
更多信息请访问 Packagist。
然后在 AppKernel.php
中启用它
new Namshi\UtilityBundle\NamshiUtilityBundle(),
Doctrine CommaSeparatedList 类型
如果您想将数组持久化到数据库中,作为一个以逗号分隔的字符串列表(例如,以便能够执行 FIND_IN_SET),您只需使用 Namshi\UtilityBundle\ORM\Type\CommaSeparatedList
类型。
请记住在Symfony2的 config.yml
中注册它
doctrine:
dbal:
types:
comma_separated_list: Namshi\UtilityBundle\ORM\Type\CommaSeparatedList
然后在您的实体中使用它
/** * @var array * * @ORM\Column(name="tags", type="comma_separated_list", nullable=true) */ protected $tags = array();
带认证的文件服务
您可以利用的一个工具是文件服务,结合认证使用。
假设您有一个文件,protected.txt
,位于 /path/to/symfony2/data/protected.txt
,并且您只想让某些用户能够访问它。
您只需启用一个路由,告诉包要服务哪个文件
protected_file: pattern: /protected.txt defaults: { _controller: NamshiUtilityBundle:Default:serveFile, file: protected.txt }
并在 parameters.yml
中定义文件路径
namshi_utility.files.protected.txt: /path/to/symfony2/data/protected.txt
此时,您将能够访问文件的内容(它使用 file_get_contents()
,因此不要尝试将其用作下载管理器)。
那么如何限制对文件的访问呢?只需使用Symfony2内置的ACL系统:为路径 ^/protected.txt
配置您的 security.yml
即可完成。
货币转换
与Symfony2完全无关,但为了(我们的)方便,这里包含了一个货币转换器,它接受汇率并可以轻松地将一个货币金额转换为另一个货币。
<?php use Namshi\UtilityBundle\Currency\Converter; use Namshi\UtilityBundle\Currency\Currency; use Namshi\UtilityBundle\Exception\CurrencyNotFound; $conversionRates = array( 'EUR' => array( 'USD' => 1.3, ), 'USD' => array( 'AED' => 4, 'EUR' => 0.7, ), ); $converter = new Converter($conversionRates); try { echo $converter->convert(12, Currency::UNITED_STATES_DOLLAR, Currency::EURO) } catch (CurrencyNotFound $e) { echo "Yo boss, can ya provide conversion rates here?"; }