basster / legacy-bridge-bundle
Bridge Bundle for wrapping legacy php projects (e.g. without frontcontrollers) into a symfony application.
Installs: 1 606
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 5
Open Issues: 0
Type:symfony-bundle
Requires
- symfony/framework-bundle: ~2.3|~3.0|~4.0
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^4.5|^5.7
README
What is this?
This bundle generates a symfony route from each .php file on the given legacy_path
folder, so you can access your old scripts through the symfony frontcontroller as they where actually present.
Additionally the wrapper injects the symfony DI-Container into $_SERVER['SYMFONY_CONTAINER']
, so you can slowly refactor the legacy app, by extracting services into symfony services but
use them in the legacy code, as well.
Inspired from Modernizing with Symfony given by @derrabus
Installation
composer require basster/legacy-bridge-bundle
Configuration
In your config.yml place:
basster_legacy_bridge:
legacy_path: '/full/path/to/my/legacy/project/files'
# optional prepend script (see http://php.net/manual/en/ini.core.php#ini.auto-prepend-file)
prepend_script: '/full/path/to/my/legacy/autoPrependFile.php' # can be ommited
# optional append script (see http://php.net/manual/en/ini.core.php#ini.auto-append-file)
append_script: '/full/path/to/my/legacy/autoAppendFile.php' # can be ommited
On the legacy app
<?php // e.g. my-old-stuff.php
/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */
$container = $_SERVER['SYMFONY_CONTAINER'];
$myService = $container->get('my.service.id');
License
This bundle is under the MIT license. See the complete license in the bundle:
Resources/meta/LICENSE