basster/legacy-bridge-bundle

Bridge Bundle for wrapping legacy php projects (e.g. without frontcontrollers) into a symfony application.

Installs: 1 603

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 2

Forks: 5

Open Issues: 0

Type:symfony-bundle

1.0.4 2019-06-21 18:44 UTC

This package is auto-updated.

Last update: 2024-04-22 05:09:40 UTC


README

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight

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