Postagem

Aqui é onde faço postagens de coisas que acho interessante.

Traits

Postagem do dia 12/03/2013 na categoria PHP



Traits é um recurso incorporado ao PHP apartir da versão 5.4 para utilização de recursos isolados.

Observe o exemplo abaixo:


<?php

/**
 * AppController class
 *
 **/
Abstract Class AppController{
	// .....
}


/**
 * Email trait
 * Classe que envia email para o usuario
 **/
trait Email{
	
	/**
	 * enviarMensagem Method
	 *
	 * Metodo que envia mensagem de email para o usuario
	 *
	 * @package Util
	 * @param $mensagem String 
	 * */	
	public function enviarMensagem( $mensagem = null )
	{
		echo $mensagem;		
	} 
}


/**
 * Compra Controller
 * Classe que gerencia a compra do usuario
 **/
Class CompraController extends AppController{
	
	use Email;
	
	/**
	 * finalizar Method	 
	 * 
	 * Metodo que finaliza a compra feita pelo usuario, verifica se a compra foi aprovada 
	 * pela operadora de cartao e dispara um aviso para o usuario via email
	 * 
	 * @package Controller
	 * 
	 * */
	public function finalizar()
	{		
		$compraFinalizada = true;
		
		if( $compraFinalizada ){
			$this->enviarMensagem("Sua compra foi finalizada e seu produto estará em sua casa até o dia dd/mm/YYY");
		}else{
			$this->enviarMensagem("Sua compra não foi aprovada pela sua operadora de cartão de créditos");
		}
	}
}


$Compra = new CompraController();
$Compra->finalizar();


 


Observe que a classe CompraController extende a classe AppController tornando impossível ela extender a classe Email para poder invocar o método enviarMensagem.

Observe que sem o recurso Traits teríamos que instanciar a classe Email dentro do método finalizar e em seguida invocar o método enviarMensagem.

Para resolver esse problema utilizaremos Traits. Basta declarar a classe Email como traits e atráves da seguinte declaração use Email na classe CompraController, acessar diretamente o método enviarMensagem.

Para mais detalhes acesse o manual do PHP

 



Deixe seus comentários abaixo: