Uma vez eu procurei, e demorei para encontrar, como fere o coracão ver certas pessoas
trocando atributos entre o Flex e o PHP, acho legar mostrar como serializar e deserializar
objetos Flex (AS3) para PHP via AMFPHP
**Este pequeno tutorial, parte do princípio que você já conhece o AMFPHP e Flex
Você ainda não conhece? um link que mostra como fazer essa integracão:
http://www.sephiroth.it/tutorials/flashPHP/flex_remoteobject/
Bom então vamos lá....
Primeiramente, crie uma classe do tipo VO/DTO no PHP que será usado para a
serializacao e deserializacão, sendo transportado entre as camadas.
No caso um exemplo bem simples, o VO CargoVO
CargoVO.php
<> CargoVO
{
var $idCargo
var $dsCargo;
//Local do VO Espelho no Flex.
var $_explicitType = "CargoVO";
}
Como você já tem seu VO no php, vamos criar um VO espelho no Flex:
CargoVO.as
package view.vo
{
//Local do VO Espelho no PHP.
[RemoteClass(alias="CargoVO")]
[Bindable]
public class CargoVO
{
public var idCargo:int;
public var dsCargo:String;
public function CargoVO()
{
this.idCargo = new Number();
this.dsCargo = new String();
}
}
}
Feito isso, é só apenas trabalhar com instâncias desses VO's...
negócio, persistência, validacão e etc... Exemplo do ServiceCargo:
<
require_once '/vo/CargoVO.php';
class ServiceCargo
{
function salvar(CargoVO $p_cargo)
{
//Métodos de acesso ao negócio
return("Salvo com Sucesso!".$p_cargo->dsCargo);
}
function obterLista()
{
//Métodos de acesso ao negócio.
}
function excluir(CargoVO $p_cargo)
{
//Métodos de acesso ao negócio.
}
function atualizar(CargoVO $p_cargo)
{
//Métodos de acesso ao negócio.
}
}
?>
Bom.. como fuciona mais ou menos o processo, Por Exemplo:
Você vai salvar o um Objeto Cargo, no Flex vc chama seu RemoteObject e manda salvar passando
o objeto CategoriaVO populado, e no meio do caminho, o Framework, AMFPHP, irá serializar em um
Objeto CargoVO PHP, assim como na hora de devolver para o Flex, ser você solicitar uma lista de
Cargos, o retorno será um Array de CargoVO, debug e confirme, se não tiver tipado como CargoVO,
você fez algo errado!
Blza?
Obrigado Pessoal pela atencão...
Abracos!!
\o/