Где я должен положить возвращенный текст действия или JavaScript? - PullRequest
0 голосов
/ 27 ноября 2011

В Symfony 1.4, если я хочу отправить некоторый текст для рендеринга через запрос AJAX, куда я должен поместить текст

  • в действие и отправить его в Javascript для рендеринга
  • поместите текст в Javascript

Я хочу знать лучшие практики.

Пример 1

PHP action

class defaultActions extends sfActions
{
    public function executeSomething(sfWebRequest $request)
    {
        $status = 'valid';
        if($status == 'valid'){
                return $this->renderText('valid');
        }
        else{
                return $this->renderText('invalid');
        }
    }
}

JS

if (valid)  
   fun1();
else
   fun2();

1 Ответ

2 голосов
/ 27 ноября 2011

Я бы назвал контроллер как обычно, а затем выполнил бы всю необходимую обработку в файле action.class.php, а затем возвратил требуемый текст.Так что мой файл action.class.php вполне может быть таким простым:

class defaultActions extends sfActions
{
    public function executeSomething(sfWebRequest $request)
    {
        $sometext = "return value";
        return $this->renderText($sometext);
    }
}

Есть ряд преимуществ

  • Безопасность - может быть ограничена
  • Рефакторинг - создание правильного действия означает более легкие изменения, если вам нужно получить данные из модели или отобразить что-то кроме текста (JSON или XML через представление)
  • Тестирование - это позволяет легко тестировать с использованием обычной функции / блокатесты
...