Как передать переменные классам в frontend / lib в symfony 1.4 - PullRequest
0 голосов
/ 22 июля 2011

Мое понимание Symfony иногда не звездное. Я только столкнулся с этой проблемой, и я действительно не уверен, как передать переменную в этой ситуации, и, к сожалению, не уверен, что посмотреть, чтобы лучше понять, что я делаю.

Я не могу использовать $this->getUser внутри класса, так как он (очевидно?) Находится вне схемы Symfony, поэтому хранить его в сеансе не вариант.

Я пробовал разные способы передачи переменной, но ... я думаю, что я просто не делаю это правильно из-за неясности того, как этот обмен информацией работает в этой ситуации.

Код здесь, находится в папке apps / frontend / lib:

public function postCompletedForm( $campaign_id, $hp_affiliate_id, $params = array(), &$response )
{
  $params[ 'ip_address' ] = $_SERVER[ 'REMOTE_ADDR' ];
  if ( isset( $ip_override )) //this is what I need to pass in
  {
    $params[ 'ip_address' ] = $ip_override;
  }
  $params[ '__timestamp' ] = date( 'Y-m-d H:i:s' );

  $response = $this->sfWebBrowser->post( $this->api_endpoint . 'post/' . $campaign_id . '/' . $hp_affiliate_id . '/', $params )->getResponseText();
    return ( preg_match( '/(1<\/SUCCESS>)/', $response ) ) ? true : false;
}

Используется также действием в модуле внутри интерфейса. Это действительно совсем не большая работа, и я знаю, что ответ будет мучительно простым. Я просто не уверен, что искать, так как то, что я знаю о php и фреймворке, подводит меня.

Спасибо за любую помощь! Я прошу прощения, если это смешной вопрос. Есть некоторые аспекты php, которые я до сих пор не затронул, как ни странно.

1 Ответ

2 голосов
/ 22 июля 2011

Если вы знаете, что этот код будет выполняться только во внешнем приложении, вы всегда можете достичь своего пользовательского класса (и многих других аналогичным образом) с помощью:

sfContext::getInstance()->getUser();

http://www.symfony -project.org / апи / 1_4 / sfContext

...