У меня есть очень старое php-приложение (1999), над которым работали последние десять лет. На данный момент приложение начинает показывать его возраст, поэтому я нахожусь в процессе перехода на «новую» среду, Symfony 1.4. Но так как приложение очень большое, я не могу сделать это сразу. Поэтому я планирую обернуть старое приложение в новое приложение Symfony и преобразовать функциональность в функциональность.
Первым шагом в этом переходе было появление старого приложения в новом приложении Symfony. Итак, я создал приложение "frontend", добавил модуль "legacy", сделал его домашней страницей по умолчанию и поместил все, что у меня было, в мой index.php (все страницы прошли через этот index.php) в Файл indexSuccess.php для indexAction. Я добавил код в «представление», потому что в нем также есть функции, и изменение этой настройки заняло бы у меня больше времени, чем я хотел бы потратить на старое приложение.
К сожалению, теперь у меня проблема с глобальными переменными. Позвольте мне привести вам пример (я бы никогда не сделал эту функцию регистра такой, но это так, поэтому, пожалуйста, посмотрите мимо этого.
$session = new ps_session;
$demo = "this is a demo variable";
$session->register('demo');
В ps_session у меня есть этот метод
public function register($var) {
global $$var;
$_SESSION [$var] = $$var;
}
Поэтому он должен поместить содержимое $ demo в сеансовую переменную с именем "demo". Умно правильно :) Во всяком случае, var_dumping показывает мне, что $$ var равен "null" и $ demo заполняется, если я var_dump до и после вызова функции. Точно такой же код без Symfony, и он возвращает правильное содержимое.
Что мне не хватает? Глобальный вызов распределен по всем областям этого огромного приложения, поэтому я действительно не хочу переключаться на что-то другое, поэтому я надеюсь на быстрое решение:)
Может быть уместно, весь код, кроме содержимого index.php, находится в папке frontend / lib / legacy /, индекс находится в файле frontend / modules / legacy / (если есть проблема с областью действия, которую я пропускаю)