Я беру приложение, которое я написал, форму и переписываю его в Silex. Это было по разным причинам написано так:
Где pageX.php - это HTML-форма с небольшим PHP-кодом, который передает данные сценарию процесса. Сценарий процесса хранит данные в объекте Form и сериализует объект в сеансе.
В настоящее время у меня есть страницы page.pp как файлы шаблонов TWIG, и они работают, но я не знаю, как включить логику процедурных сценариев процесса.
Я уверен, что я не копирую фактическую логику контроллеров.
Если я следую вашим требованиям, вам просто нужен один и тот же маршрут дважды: один для получения (отображение формы) и один для сообщения для его обработки. В пост-контроллере вам просто нужно включить ваш 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();
});
С этого момента, если вы хотите/находите его адекватным, вы можете начать рефакторинг страниц pageX_process.php более удобным способом OOP/Silex, но у вас есть начальная точка с этой архитектурой приложения.
ВНИМАНИЕ: