我正在写一个我写的应用程序,一个表单,并在Silex中重写它。出于各种原因,它写得像:
其中pageX.php是一个包含很少PHP代码的HTML表单,它将数据传递给流程脚本。进程脚本将数据存储到Form对象,并在Session中序列化对象。
目前,我将pageX.php页面作为TWIG模板文件并且它们可以工作,但我不知道如何合并程序流程脚本的逻辑。
我确定我不会将实际逻辑复制到控制器。
答案 0 :(得分:1)
如果我遵循您的要求,您只需要两次相同的路线:一个用于获取(显示表单),另一个用于发布以处理它。在post控制器中,你只需要包含你的 pageX_process.php ,你应该准备好了。
在Silex代码中翻译它应该是这样的:
<?php
/**
* if you're using silex-skeleton
* from: https://packagist.org/packages/fabpot/silex-skeleton)
* this file should be src/controllers
*/
// standard setup, like error handling and other route declarations
$app->get('/page1', function() use ($app) {
// you're currently using this (somehow)
$params = []; //set up your template parameters here
return $app['twig']->render('page1.twig', $params);
});
$app->post('/page1_proccess', function() use($app) {
ob_start();
require PATH_TO_LEGACY_FILES_DIR . '/page1_process.php';
return ob_get_clean();
});
从现在开始,如果你想要/找到它,你可以开始以更多的OOP / Silex方式重构你的 pageX_process.php 页面,但你有一个这个应用程序的起点架构。
注意: