Categories
Programming symfony2

Load bundle without composer.json in Symfony2.3

This is how I loaded a legacy budle without composer.json in a custom location for my Symfony2.3 project with composer.

In one of my Symfony2.3 projects I needed to use an old external bundle. This legacy bundle (from Symfony2.0) hasn’t a composer.json file and in my case I can not add one.
Anyway, I wanted to use composer and its autoloader also for this bundle in order to keep things simple for me.

Let’s assume I wanted to add TwitterClientBundle and its namespace is: Razvan\TwitterClientBundle

For this I added in my composer.json the following:

[javascript]

{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": {
"": "src/",
"Razvan\\TwitterClientBundle": "vendor/razvan/twitter-client-bundle"
}
},
"repositories": [
{
"type": "package",
"package": {
"name": "razvan/twitter-client-bundle/Razvan/TwittereClientBundle",
"version": "4.4.3",
"source": {
"url": "https://github.com/raztud/TwittereClientBundle",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"razvan/twitter-client-bundle/Razvan/TwitterClientBundle": "*"
},


[/javascript]

After that I ran:

[bash]php composer.phar update razvan/twitter-client-bundle[/bash]

and the bundle was added in /path/to/yourproject/vendor/razvan/twitter-client-bundle/

eg:

[bash]
razvan@main2:/var/www/twitter/vendor/razvan/twitter-client-bundle$ tree
.
— Razvan
— TwitterClientBundle
— DependencyInjection
   — RazvanTwitterClientExtension.php
— RazvanTwitterClientBundle.php
— Manager
….
[/bash]

After that I enabled the bundle in AppKernel.php

[php]new Razvan\TwitterClientBundle\RazvanTwitterClientBundle()[/php]

and that was all.

Disclaimer:
– Maybe there are better solution, but I did not find them yet.
– The bundle RazvanTwitterBundle doesn’t exist on Github.

P.S. Somebody else wrote a similar post in the past.