我有一个很大的代码库,我试图最终转换为Zend-Framework支持的堆栈。
我有时会将新模块写入我可以选择的位置:
这可能吗? 怎么样?
为了给你一个想法,我现在使用专有的多个路由文件,其中ZF中的所有内容都通过一个路由器文件。
所以传统代码就像这样被称为:
http://legacy:80/index.php?route=product
可能类似于zend framework 2 in a subdirectory
Zend Middleware方法
我能够关注https://docs.zendframework.com/zend-mvc/middleware/并实施IndexMiddleware
课程。我可以看到正在调用IndexMiddleware::process()
方法。但我不确定如何更进一步,以及如何使用我的遗留Web应用程序像以前一样返回数据。
MiddlewareListener。
旧版应用 - index.php
$module = filter($_GET['p']);
if (!empty($module))
$inc = 'portal/{$module}.php'; //prep a legacy module
require($inc); //run module
答案 0 :(得分:1)
那里有很多解决方案......取决于你拥有多少新代码和你想要的地址。
简而言之,您可以在服务器级别(aliases
,rewrite
等)或PHP代码级别工作。
你可以做的就是使用Zend Skeleton中的index.php,以及通过index.php
的默认URL路由。然后看看https://github.com/ariiiman/skylake/blob/master/src/Animation/Morph.js。我相信添加一个可以调度旧应用程序的监听器是一个很好的观点。你可以在application lifecycle, especially the route event中找到大量的监听器来代码(例如,查看中间件)。