adspray / short-url-bundle
Provides a service and twig extension for getting short urls like http://your.host/~short
Installs: 1 458
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 5
Type:symfony-bundle
Requires
- php: >=5.3.2
- doctrine/doctrine-bundle: ^1.6
- doctrine/orm: ^2.5
- symfony/framework-bundle: ~3.0|^4.0
README
This bundle provides a service and twig extension for getting short urls like http://your.host/~short
Installation
Add this bundle to your project
Using the vendors script
Add the following lines in your deps file:
[BumzShortUrlBundle]
git=git://github.com/biozshock/ShortUrlBundle.git
target=bundles/Bumz/ShortUrlBundle
Run the vendors script:
$ php bin/vendors install
Using Git submodule
$ git submodule add git://github.com/biozshock/ShortUrlBundle.git vendor/bundles/Bumz/ShortUrlBundle
Add the Bumz namespace to your autoloader
<?php // app/autoload.php $loader->registerNamespaces(array( 'Bumz' => __DIR__.'/../vendor/bundles', // your other namespaces ));
Add this bundle to your application's kernel
<?php // app/AppKernel.php public function registerBundles() { return array( // ... new Bumz\ShortUrlBundle\BumzShortUrlBundle(), // ... ); }
Add bundle's routing
# /app/config/routing.yml BumzShortUrlBundle: resource: "@BumzShortUrlBundle/Resources/config/routing.yml" prefix: /
Examples
Short url in a controller
<?php use Symfony\Bundle\FrameworkBundle\Controller\Controller; class UsersController extends Controller { public function getUserProfileShortAction() { ... $longUrl = $this->get('bumz_short_url.shortener')->shorten('http://example.com'); // $longUrl = '/~ShE' ... } }
Get long url in controller
<?php use Symfony\Bundle\FrameworkBundle\Controller\Controller; class UsersController extends Controller { public function getUserProfileShortAction() { ... $shortUrl = 'aUty'; $longUrl = $this->get('bumz_short_url.shortener')->getLong($shortUrl); // $longUrl = 'http://example.com' ... } }
Get short url in a twig template
{{ 'http://example.com' | shortenUrl }} {# this will output something like /~ShE #}