color=red>" . $y . "</font>", $x); } else { $saida = $x; } return $saida; } function mostraDinheiro($val) { if ($val) { $valFormatado = 'R$ ' . number_format($val, 2, ',', '.'); } else { $valFormatado = ""; } return $valFormatado; } function arrumaStr($str, $ucase = 'lower') { $str = trim(str_replace(" ", "", $str)); for ($i = 0; $i < strlen($str); $i++) { $Astr[$i] = $str{$i}; } $sem = array("c", "C", "a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "A", "O", "a", "o", "a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "A", "O"); $com = array("c", "C", "a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "A", "O", "a", "o", "`a", "`e", "`i", "`o", "`u", "`A", "`E", "`I", "`O", "`U", "a", "o", "A", "O"); $strFinal = implode("", str_replace($com, $sem, $Astr)); if ($ucase == 'lower') { return strtolower($strFinal); } else { return strtoupper($strFinal); } } public function mostraSQL($sqlQuery) { echo "<pre style=\"border:solid 1px #EA9C5C; padding:3px; color:#000000; background-color:#ededed \">"; echo $sqlQuery; echo "</pre>"; echo "<hr size=\"1\" width=\"100%\">"; } public function getHumanReadableSize($param) { if ($param < 1024) { return $param . ' B'; } elseif ($param < 1048576) { return round($param / 1024, 2) . ' KiB'; } elseif ($param < 1073741824) { return round($param / 1048576, 2) . ' MiB'; } elseif ($param < 1099511627776) { return round($param / 1073741824, 2) . ' GiB'; } elseif ($param < 1125899906842624) { return round($param / 1099511627776, 2) . ' TiB'; } elseif ($param < 1152921504606846976) { return round($param / 1125899906842624, 2) . ' PiB'; } elseif ($param < 1180591620717411303424) { return round($param / 1152921504606846976, 2) . ' EiB'; } elseif ($param < 1208925819614629174706176) { return round($param / 1180591620717411303424, 2) . ' ZiB'; } else { return round($param / 1208925819614629174706176, 2) . ' YiB'; } }}?>e o index alterado<?phprequire 'autoload.php';// nem criando o construtor assim nao funciona//$cliente = new Cliente(33,'Mario Cezzare','mcezzare@gmail.com');$cliente = new Cliente();$cliente->setId(33);$cliente->setNome('Mario Cezzare');$cliente->setEmail('mcezzare@gmail.com');$clienteDao = new ClienteDAO();$clienteController = new ClienteController();$util = new Utils();$util->mostraObjeto($cliente);$util->mostraObjeto($clienteDao);$util->mostraObjeto($clienteController);?>e o resultado :Figura 05 - mostraObjeto customizado Agora so p/ mostrar o objeto (array ou array de objetos) de um jeito mais compacto vou criar uma funcao mostraObjetoArrUtils.class.php<? public function mostraObjetoArr($object) { echo "<pre style=\"border:solid 1px #EA9C5C; padding:3px; color:#000000; background-color:#ededed \">"; echo "Object: <br>"; if (is_array($object)) { foreach ($object as $key => $value) { echo "$key:<b>$value</b> &nbsp;"; if (is_array($value)) { foreach ($value as $val) { echo "$value:<b>$val</b> &nbsp;|&nbsp;"; } } echo "<br>"; } } echo "</pre>"; echo "<hr size=\"1\" width=\"100%\">"; }?>e p/ isso poder funcionar precisamos adicionar o metodo __toString em nosso objeto ClienteCliente.class.php<?//....public function __toString() { return "id:".$this->getId()." nome:".$this->getNome()." email:".$this->getEmail(); }?>e no index agora :<?phprequire 'autoload.php';// nem criando o construtor assim nao funciona//$cliente = new Cliente(33,'Mario Cezzare','mcezzare@gmail.com');$cliente = new Cliente();$cliente->setId(33);$cliente->setNome('Mario Cezzare');$cliente->setEmail('mcezzare@gmail.com');$util = new Utils();//$util->mostraObjeto($cliente);//$util->mostraObjeto($clienteDao);//$util->mostraObjeto($clienteController);$cliente2 = new Cliente();$cliente2->setId(26);$cliente2->setNome('Joao Test');$cliente2->setEmail('jtest@gmail.com');$arrClientes = array();array_push($arrClientes, $cliente);array_push($arrClientes, $cliente2);$util->mostraObjetoArr($arrClientes);//jeito mais moderno de armazenar arrays$arrObjectNative = new ArrayObject($arrClientes);$util->mostraObjeto($arrObjectNative);?>e o resultado : Figura 06 - resultado apos o metodo __toString e mostrando o objeto ArrayObjectso coloquei o $arrObjectNative p/ mostrar um jeito mais eficiente de armazenar arrays de tipos de objetos, o objetivo que era mostrar o autoload dentro de um MVC foi atendido.Arquivos deste PostAutoLoad_ExemploPHP.zipAgora vou