markdown Observer - Como trafegar dados de uma controller para um观察员

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Observer - Como trafegar dados de uma controller para um观察员相关的知识,希望对你有一定的参考价值。

## Controller

O código abaixo faz parte de uma Controller, onde os dados estão disponíveis, e iremos armazenar os dados via sessão, para que possamos resgatá-los em nosso observer.

```PHP
<?php
class Default_Controller extends Mage_Core_Controller_Front_Action {
	
	public function indexAction() {
	    $session = Mage::getSingleton( 'checkout/session' );

		$session->setDirectCheckoutUtmSource( $_GET['utm_source'] );
		$session->setDirectCheckoutUtmCampaing( $_GET['utm_campaing'] );
	}
	
?>
```

## Observer

Aqui, em nosso observer, eu resgato os parâmetros que foram passados via sessão pela nossa Controller.

```PHP

<?php
class Projeto_CustomBlocks_Model_NomeDoObserver {

	public function NomeDoMetodo() {
		$session = Mage::getSingleton('checkout/session');
		
		$utmSource = $session->getDirectCheckoutUtmSource();
		$utmCampaing = $session->getDirectCheckoutUtmCampaing();
		$query = array();

		if ( !empty( strval( $utmSource ) ) ) {
			$query[] = "utm_source=$utmSource"; 
		}
		
		if ( !empty( strval( $utmCampaing ) ) ) {
			$query[] = "utm_campaing=$utmCampaing"; 
		}

		$query = implode( "&", $query );

		header("Location: " . Mage::getUrl('checkout/onepage', array( '_query' => $query)));
		
	}

}

```

以上是关于markdown Observer - Como trafegar dados de uma controller para um观察员的主要内容,如果未能解决你的问题,请参考以下文章

编程思想设计模式行为模式Behavioral观察者模式Observer

pattern设计模式 - Observer观察者模式

观察者模式Observer

观察者模式Observer

使用 mongoose-observer 库时出现 MissingSchemaError

用Delphi实现观察者模式(Observer模式)