Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/namshi/namshiutilitybundle
A collection of utilities for Sf2 apps.
https://github.com/namshi/namshiutilitybundle
Last synced: 1 day ago
JSON representation
A collection of utilities for Sf2 apps.
- Host: GitHub
- URL: https://github.com/namshi/namshiutilitybundle
- Owner: namshi
- Created: 2013-04-23T11:29:18.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-05-01T06:45:47.000Z (over 10 years ago)
- Last Synced: 2024-04-14T12:15:19.785Z (7 months ago)
- Language: PHP
- Size: 211 KB
- Stars: 6
- Watchers: 18
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NAMSHI | UtilityBundle
This bundle provides some basic, silly utilities
that we use across our Symfony2 applications.## Installation
The bundle can be easily installed via
composer (`"namshi/utility-bundle": "dev-master"`).More informations available on
[Packagist](https://packagist.org/packages/namshi/utility-bundle).Then enable it in the `AppKernel.php`:
``` php
new Namshi\UtilityBundle\NamshiUtilityBundle(),
```## Doctrine CommaSeparatedList type
If you want to persist an array into the
DB as a list of comma-separated strings (ie.
to be able to execute [FIND_IN_SET](http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set))
you can simply use the `Namshi\UtilityBundle\ORM\Type\CommaSeparatedList`
type.Remember to register it inside Symfony2's `config.yml`:
```
doctrine:
dbal:
types:
comma_separated_list: Namshi\UtilityBundle\ORM\Type\CommaSeparatedList
```and then use it on your entities:
``` php
/**
* @var array
*
* @ORM\Column(name="tags", type="comma_separated_list", nullable=true)
*/
protected $tags = array();
```## File serving with authentication
One of the utilities that you can take
advantage of is file serving, mixing it
with authentication.Suppose you have a file, `protected.txt`,
in `/path/to/symfony2/data/protected.txt`
and you want only some users to be able
to access it.You just have to enable a route that tells
the bundle which file to serve:``` yml
protected_file:
pattern: /protected.txt
defaults: { _controller: NamshiUtilityBundle:Default:serveFile, file: protected.txt }
```and define the file path in the `parameters.yml`:
``` yml
namshi_utility.files.protected.txt: /path/to/symfony2/data/protected.txt
```At that point you will be able to access the
content of the file (it uses `file_get_contents()`, so
don't try using this utility as a download manager).How to restrict access to the file then? Simply use
the built-in ACL system that you have in Symfony2:
configure your `security.yml` for the path `^/protected.txt`
and you're done.## Currency conversion
Totally unrelated to Symfony2, but included here for (our) conveniency,
there is a currency converter that accepts conversion rates
and can be used to easily convert an amount from a currency to
another one.``` php
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?";
}
```