Download the PHP package mremi/url-shortener-bundle without Composer
On this page you can find all versions of the php package mremi/url-shortener-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package url-shortener-bundle
MremiUrlShortenerBundle
This bundle implements the UrlShortener library for Symfony.
License
This bundle is available under the MIT license.
Prerequisites
This version of the bundle requires Symfony 2.8, 3.0 or newer.
For compatibility with Symfony 2.7 or earlier, please use 1.0.* versions of this bundle.
Basic Docs
- Installation
- Chain providers
- Custom provider
- Test configured providers
- Retrieve link
- Twig functions
- Profiler
- Contribution
Installation
Installation is a quick 5 step process:
- Download MremiUrlShortenerBundle using composer
- Enable the Bundle
- Create your Link class (optional)
- Configure the MremiUrlShortenerBundle
- Update your database schema (optional)
Step 1: Download MremiUrlShortenerBundle using composer
Require mremi/url-shortener-bundle
via composer:
Note: if you are using Symfony 2.7 or earlier, please require ~1.0.0 version:
Composer will modify your composer.json file and install the bundle to your
project's vendor/mremi
directory.
Step 2: Enable the bundle
Enable the bundle in the kernel:
Step 3: Create your Link class (optional)
The goal of this bundle is not to persist some Link
class to a database,
but you can if you want just by following next instructions.
So if you don't need to do this, you can jump to the next step.
Your first job, then, is to create the Link
class for your application.
This class can look and act however you want: add any properties or methods you
find useful. This is your Link
class.
The bundle provides base classes which are already mapped for most fields to make it easier to create your entity. Here is how you use it:
- Extend the base
Link
class from theEntity
folder - Map the
id
field. It must be protected as it is inherited from the parent class - Add index on
long_url
column: Doctrine does not allow to specify index size in the mapping, so you have to write it manually in a migration class.
Note:
For now, only Doctrine ORM is handled by this bundle (any PR will be appreciated :) ).
Step 4: Configure the MremiUrlShortenerBundle
Fow now, you just have to configure your Bit.ly username and password.
Step 5: Update your database schema (optional)
If you configured the data storage (step 3), you can now update your database schema.
If you want to first see the create table query:
Then you can run it:
Chain providers
One service allow you to shorten/expand URL, to use like this:
Custom provider
You can add your own provider to the chain providers:
- Create a service which implements
\Mremi\UrlShortener\Provider\UrlShortenerProviderInterface
- Add the tag
mremi_url_shortener.provider
Test configured providers
You can now test the providers you configured with the following command line:
Retrieve link
You can retrieve some links using these finders:
If you configured the data storage (steps 3 & 5), finders look first in database ; if the link exists then return it, otherwise an API call will be done and link will be saved.
Else this will consume an API call.
Twig functions
You can also simply shorten/expand a URL from a twig file. It should be used with caution if no data storage is configured, because it's not HTTP friendly.
Profiler
If your are in debug mode (see your front controller), you can check in the web debug toolbar the configured providers and some statistics from the current HTTP request: number of requests per provider, consumed memory, request duration...
Contribution
Any question or feedback? Open an issue and I will try to reply quickly.
A feature is missing here? Feel free to create a pull request to solve it!
I hope this has been useful and has helped you. If so, share it and recommend it! :)
All versions of url-shortener-bundle with dependencies
symfony/framework-bundle Version ~2.8 | ~3.0
mremi/url-shortener Version ~1.0