basster / legacy-bridge-bundle
用于将旧版 PHP 项目(例如,没有 frontcontrollers 的项目)包裹成 symfony 应用的桥梁包。
1.0.4
2019-06-21 18:44 UTC
Requires
- symfony/framework-bundle: ~2.3|~3.0|~4.0
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^4.5|^5.7
README
这是什么?
此包从指定的 legacy_path
文件夹中的每个 .php 文件生成一个 symfony 路由,因此您可以通过 symfony 前端控制器访问您的旧脚本,就像它们实际上存在一样。此外,包装器将 symfony DI-Container 注入 $_SERVER['SYMFONY_CONTAINER']
,因此您可以逐步重构旧应用程序,通过将服务提取到 symfony 服务中,但在旧代码中使用它们。
灵感来源于 使用 Symfony 进行现代化改造,由 @derrabus 提供
安装
composer require basster/legacy-bridge-bundle
配置
在您的 config.yml 中放置
basster_legacy_bridge:
legacy_path: '/full/path/to/my/legacy/project/files'
# optional prepend script (see https://php.ac.cn/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 https://php.ac.cn/manual/en/ini.core.php#ini.auto-append-file)
append_script: '/full/path/to/my/legacy/autoAppendFile.php' # can be ommited
在旧应用程序上
<?php // e.g. my-old-stuff.php
/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */
$container = $_SERVER['SYMFONY_CONTAINER'];
$myService = $container->get('my.service.id');
许可证
此包受 MIT 许可证的约束。请参阅包中的完整许可证。
Resources/meta/LICENSE