Mais um Zend Certified Engineer

8 comments

Posted on 22nd July 2010 by Igor Escobar in Geral |PHP

, , ,

Mais uma etapa da vida concluída. No dia 19 de julho, ao meio dia, eu me tornei mais um PHP5 Zend Certified Engineer. Não vou te enganar não, não foi fácil. A prova tem muita pegadinha o inglês da prova é bem tecnico e você precisa de muita calma e paciência para fazer a prova.

Após “aquele” cagaço de clicar em “Finish Exam”, eu fechei os olhos, contei até 10. Ao abrir os olhos, vejo a notícia no monitor:

CONGRATULATIONS! YOU’RE NOW A PHP5 ZEND CERTIFIED ENGINEER.

#nerdpride. Enfim, acho que vocês já estão de saco cheio de tanto que eu falo desta certificação aqui no blog. O post é só para comunicar que eu consegui. Afinal, começou!, termina!. Muita gente ficou torcendo por mim deste o começo e nada mais justo do que vir até aqui e anunciar a conquista da mesma forma que eu anunciei a luta.

Obrigado à todos os que me ajudaram nos tempos de estudo e todos os que torceram por mim.

:D Até o próximo post :D

Posts Relacionados:

Falta pouco para a ZCE

8 comments

Posted on 5th July 2010 by Igor Escobar in Geral |PHP

, , ,

Olá pessoal, este é um post de muita alegria (hehe).

Faz 4 semanas que eu estou na luta para me tornar um Zend Certified Engineer. Dos 10 simulados que eu comprei no zend shop este é o resultado no meu quinto simulado. Confesso que no começo apanhei um pouco. Tem muita coisa que o exame cobra que é decoreba. Só o dia-a-dia com PHP para te ensinar certas coisas.

No meu quinto simulado esta é a primeira vez que eu tiro excellent em todos os tópicos do exame. Agradeço a todos os que me ajudaram nesta fase de estudo, principalmente Fernando Mantoan, Felipe Ribeiro e Jaydson Gomes. - Vocês são foda!

Vou divulgar aqui para vocês os materiais que me ajudaram para a prova da ZCE:

  1. ZEND PHP5 Certification Study Guide (PDF)
  2. Passing the Zend php 5 certification exam
  3. Strings And Regular Expressions
  4. Streams And Network
  5. XML & Web Service
  6. Web Programming & Web Features
  7. Database & SQL
  8. Security
  9. PHP 4 & PHP 5
  10. Object Oriented Programming in PHP 5
  11. Object Oriented Programming: Design & Theory
  12. Zend PHP5 certification Exam study review 10: Supplementary I
  13. Zend PHP5 certification Exam study review 10: Supplementary II
  14. Zend PHP5 certification Exam study review 10: Supplementary III
  15. php.net
  16. Google.com

Posts Relacionados:

Zend Certified Engineer, Vamos?

12 comments

Posted on 21st June 2010 by Igor Escobar in Geral |PHP

, ,

Arrumei dinheiro. Tomei vergonha na cara. Certificações é sempre um assunto que gera bastante polêmica. Sempre que falamos sobre o assunto, tem sempre alguém que declara guerra e não para de falar sem parar os motivos pelos quais ele despreza as certificações. Não tiro a razão de ninguém.

Mas eu tenho um pensamento que vocês deveriam refletir. Não falo isso generalizando as certificações, estou falando da ZCE.

Minha mensagem é especificamente para as pessoas que amam o PHP assim como eu. Pessoas que realmente levam a sua filosofia e a sua comunidade a sério. Se você não faz a certificação por que tem raiva do mundo, então faça pelo PHP. Quanto mais de nós, profissionais, nos comprometermos com o meio em que trabalhamos, mais informal este mercado deixa de ser e mais ele passa a ser levado a sério.

Eu particularmente quero tirar esta certificação para me testar, ver como eu estou (oficialmente) na linguagem e claro é uma boa oportunidade para aprimorar os conhecimentos, estudar mais e quem sabe isso possa me trazer sorte (rs).

Tirar a certificação este ano não estava nos meus planos. Este ano era para eu ter iniciado a minha pós-graduação em Engenharia de Software, porém, não estou tendo condições financeiras de pagar o curso este ano.  Sem grana, resolvi adiantar a certificação e inverter as metas.

Este ano “vou” me certificar pela Zend. Já comprei o Zend PHP 5 Certification Bundle, recebi todo o material e agora é só cair de cara nos livros e me preparar para o exame final que pretendo fazer daqui um ou dois meses.

Se você tem interesse em se certificar vai aqui algumas informações que podem te acrescentar algo:

  • Você pode pagar a certificação com qualquer cartão de crédio internacional Visa/MasterCard, PayPal ou Transferência Bancária.
  • Material, simulados e a prova final é em inglês.
  • Os simulados são dados pela php|architect.
  • Os simulados, em teoria são mais difíceis do que a prova oficial.
  • Se você vai bem nos simulados, você vai bem no exame.
  • São 80 questões e você tem 90 minutos para responder (simulado e exame final).
  • O investimento total sai por 165,00 dolares.
  • A prova é bem detalhista. Se você pensa que a parte chata (bitwise operators, manipulação de números exponenciais, hexadecimais e octais por exemplo) não cai, você está enganado.
  • Prepare-se para decorar nome de funções e suas derivadas.
  • Os simulados são online.
  • O exame é aplicado somente em centros habilitados pela Zend.
  • Existem milhares centros espalhados pelo globo (inclusive no brasil).
  • Se você falhar no exame final, não se preocupe, a Zend oferece descontos para uma próxima prova (que eu pretendo não descobrir qual é).

Me desejem sorte :)

Igor
[]‘s

Posts Relacionados:

PHP Conference Brasil 2010

0 comments

Posted on 11th June 2010 by Igor Escobar in Curiosidades |PHP

,

O PHPSP está responsável pelo conteúdo do evento, por isso, disponibilizamos a todos um lugar onde qualquer pessoa pode se registrar e cadastrar seus palestras de maneira simples, rápida e fácil. Tentamos simplificar todo o processo da melhor forma possível, mas se você tiver alguma crítica/sugestão ficaremos felizes em poder atendê-las  se possível.

Mas o que é a chamada de trabalhos?

A chamada de trabalhos é um período em que todos que estiverem interessados em palestrar no evento, possam enviar suas propostas de palestra. Você não precisa ser um expert, ou ter palestrado em algum evento. Como o público da PHP Conference Brasil é grande, tenha certeza de que o assunto que você se sente seguro para abordar, será apreciado pelas pessoas. Então não se acanhe, envie sua proposta de palestra! Seja ela uma abordagem simples para quem está começando, um caso de uso da linguagem ou alguma nova ferramenta. Nos envie! Você não tem nada a perder, muito pelo contrário!

O que eu ganho caso minha palestra seja escolhida?

Você tem uma entrada gratuita para o evento, nos dois dias de palestras e caso sua palestra seja escolhida e você esteja em outros estados; a organização do evento custeia sua passagem e hospedagem. Existe jeito melhor de ir a um evento?!

Como serão escolhidas as palestras?

Simples: serão escolhidas por vocês! Ao fecharmos a chamada de trabalho ninguém mais vai poder enviar palestras, aí começamos um período de avaliação, e vocês serão os avaliadores. Ninguém vai saber quem vai dar a palestra, o objeto de avaliação será somente a palestra e no evento entrarão as palestras que contiverem as melhores avaliações, ou seja: as palestras que vocês querem ver!

Ok, quero enviar minhas palestras !

Sim, envie mais de uma! Quanto mais palestras você enviar, mais chances de participar do evento!

Para enviar sua palestra simplesmente acesse e se cadastre: http://www.phpconf.com.br/cfp

Fonte: http://phpsp.org.br/?p=1262

Posts Relacionados:

5º Seminário PHP

0 comments

Posted on 8th June 2010 by Igor Escobar in PHP

,

Em sua 5ª edição temos um evento voltado tanto para Desenvolvedores como para Coordenadores e Gerentes. O evento começa as 9:00, no mesmo local da 4ª edição, Century Flat Paulista – R. Teixeira da Silva, 647 – Paraíso.

Público Alvo: Desenvolvedores PHP, sobretudo aqueles que procuram se profissionalizar, Coordenadores e Gerente de Projetos.

Objetivo: Incentivar a formação de pessoas para o mercado corporativo, a fim de construir aplicações e portais mais sólidos e escaláveis de forma eficiente.

Com 5 palestras e 4 palestrantes bem conhecidos na comunidade, abordaremos temas atuais e o que eles podem ajudar no desenvolvimento de aplicação estáveis e de simple manutenção.

Pela primeira vez, Cal Evans no Brasil!

Em uma palestra focada em gerentes de desenvolvimento, Cal Evans evangelista PHP,  fala sobre como um gerente pode aprender com a comunidade Open Source e motivar os desenvolvedores possibilitando novos desafios, crescimento e inovação! Além disso, Cal tomará mais uma vez o pódio focando nos desenvolvedores e falando sobre Flash Builder4 e PHP, em uma sessão de live coding!

Rafael Dohms foca as vantagens de Test Driven Development e porque isso é bom a longo e curto prazo e como isso pode trazer produtividade e confiança ao seu time.

Guilherme Blanco mostra a versão 2.0 do Doctrine, o maior ORM de PHP. Usando todas as vantagens do PHP 5.3 esta nova versão tem um grande potencial para aumentar ainda mais a produtividade de seu time.

Augusto Pascutti irá falar sobre os bancos de dados não relacionais (NoSQL) que estão surgindo. Suas aplicações, como funcionam e o suporte deles nas versões atuais do PHP.

Todas as palestras possuem uma mescla de gerência e desenvolvimento, sendo assim palestras muito úteis para gerentes que queiram levar seu time ao próximo nível, de qualidade e agilidade, ou para desenvolvedores que queira facilitar seu trabalho do dia a dia e trazer ainda mais produtividade.

Após as palestras teremos uma mesa redonda para discutir os mais diversos assunto e depois, para os que aguentarem, teremos o #phpinga para jogar papo fora e, claro, falar de PHP de um jeito mais descontraído.

Já se inscreveu? Não esqueça de se cadastrar no joind.in http://joind.in/event/view/391 para comentar as palestras e obter os slides posteriormente.

Increva-se já pois as vagas são limitadas

Posts Relacionados:

Detectando o iPad com PHP e Javascript

3 comments

Posted on 14th April 2010 by Igor Escobar in Curiosidades |JavaScript |PHP |Utilidades

, , , ,

Não me pergunte como, não me pergunte o por quê mas o Steve Jobs conseguiu mais uma vez. Tudo começou com rumores de perda de tempo, ele não vai conseguir e bla bla e no final das contas a poeira abaixou e o iPad foi lançado no dia 3 de abril. Logo após o final de semana de seu lançamento oficial, 700 mil iPads foram vendidos só nos Estados Unidos.

Sendo assim, é importante saber identificar estes dispositivos para conseguirmos otimizar nossos serviços para que nos possibilite atingir uma nova fatia de mercado, dando origem a novos negócios e oportunidades.

O novo iPad da Apple é identificado pelo seguinte User Agent:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

Sabendo como os novos iPads são identificados aqui vão algumas soluções para que vocês possam identificá-los e fazer suas versões dedicadas a partir daí:

Detectando iPad com PHP

$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');

Detectando iPad com Javascript

var isiPad = navigator.userAgent.match(/iPad/i) != null;

Detectando o iPad com .htaccess

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.seudominio.com [R=301]

Espero que ajude!
[]‘s

Posts Relacionados:

Bitly-PHP – Lançada a versão 1.2

15 comments

Posted on 5th April 2010 by Igor Escobar in PHP |Utilidades

, ,

Olá pessoal!


$easter = 'Páscoa';
echo sprinf("Feliz %s ! astrasado =(" , $Easter);

Semana passada falei um pouco sobre o meu novo projeto open-source, o Bitly-PHP. Para quem ainda não sabe, o Bitly-PHP é uma nova forma de você interagir com a API RESTful do Bitly. A library permite que você encurte, descubra a url longa, receba informações e estatísticas completas sobre um link encurtado.

Sobre a versão 1.2

Depois do dia em que lancei a primeira versão do Bitly-PHP. Comecei a ouvir a comunidade PHP. Abri tópicos em listas e pedindo por sugestões. O feedback da comunidade foi muito bom. As pessoas realmente gostaram do que viram e o resultado foi isso que estamos vendo agora. A versão 1.2 do Bitly-PHP.

O que mudou?

Para os que estão utilizando desde primeira versão, não se preocupe. Se você baixar a nova versão o seu código continuará funcionando. Todas as alterações foram levando em conta as pessoas que já estavam utilizando.

Na versão 1.0 para você encurtar uma url você podia fazer da seguinte forma:

<?php
$bitlyphp = new Bitly();
$bitlyphp->login = '<your_login>';
$bitlyphp->api_key = '<your_api_key>';
$bitlyphp->url = 'http://blog.igorescobar.com';
$bitlyphp->shorten();
echo $bitlyphp->getData()->shortUrl; // Imprime a url encurtada.
?>

Na versão 1.2 você pode reduzir estas linhas para duas.

<?php
$bitlyphp = new Bitly( '<your_login>', '<your_api_key>');
echo $bitlyphp->shorten('http://blog.igorescobar.com'); // Imprime a url encurtada.
?>

Mais prático, não?

As parâmetros mais básicos e obvios foram encapsulados dentro do próprio método reduzindo o tempo gasto para o usuário que queria fazer algo que não fuga do simples “encurtar urls”.

Mas o método:

print_r( $bitlyphp->getData() );

Continua valendo caso você queira acessar um dado mais específico.

O que mais mudou?

  • Agora Bitly-PHP está também, disponível no PHP Classes.
  • Todos os comentários dentro da library do Bitly-PHP foram re-escritos em inglês.
  • Todos os exemplos dados na Wiki do Bitly-PHP foram re-escritos e simplificados para as alterações que vieram com a versão 1.2.
  • 2 bugs foram corrigidos.

Posts Relacionados:

Encurtando URLs com o Bitly-PHP

5 comments

Posted on 24th March 2010 by Igor Escobar in PHP |Utilidades

, ,

Sobre o Bitly-PHP

Nos últimos dias tenho trabalhado em uma library em PHP (claro) para abstrair as funcionalidades da API RESTful do Bit.ly . Se chama Bitly-PHP. Toda a library foi desenvolvida utilizando PHP5, Orientação a Objetos, Naming Convention e cURL (se não tiver ele usa uma função alternativa).

Download e Documentação

Você pode fazer o download da library direto na pagina do Bitly-PHP no GitHub. Todos os outros exemplos de uso da library você encontra direto no Wiki do Bitly-PHP.

Se você tem o git na sua máquina você pode executar o comando:

git clone git://github.com/igorescobar/Bitly-PHP.git

Encurtando URLs

O primeiro que você deve fazer é incluir a arquivo que contém a library do Bitly-PHP:

include_once("Bitly-PHP/bitly.php");

Depois é muito simples. Você só precisa instanciar o objeto do Bitly PHP, informar a URL que quer encurtar, invocar o método responsável por encurtar as URLs, o shorten.

include_once("Bitly-PHP/bitly.php");
$bitly  = new Bitly();
$bitly->url = 'http://www.google.com/';
$bitly->shorten();

O Bitly-PHP possuí um método responsável por acessar os dados que a API do Bit.ly retorna chamado getData().

include_once("Bitly-PHP/bitly.php");
$bitly  = new Bitly();
$bitly->url = 'http://www.google.com/';
$bitly->shorten();
$bitly->getData()->shortUrl; // Saída: http://bit.ly/b6R4Uf

Se você não sabe qual o nome do parametro que você quer chamar, chame o metodo debug():

include_once("Bitly-PHP/bitly.php");
$bitly  = new Bitly();
$bitly->url = 'http://www.google.com/';
$bitly->shorten();
$bitly->debug();

O debug vai mostrar:

{
    "errorCode": 0,
    "errorMessage": "",
    "results": {
        "http://www.google.com/": {
            "hash": "2V6CFi",
            "shortCNAMEUrl": "http://bit.ly/b6R4Uf",
            "shortKeywordUrl": "",
            "shortUrl": "http://bit.ly/b6R4Uf",
            "userHash": "b6R4Uf"
        }
    },
    "statusCode": "OK"
}

É isso!

[]‘s

Posts Relacionados:

Inscreva o seu grupo na Zend

4 comments

Posted on 15th December 2009 by Igor Escobar in Curiosidades |Geral |Internet |PHP |Utilidades

,

A Zend anúnciou ontem no seu perfil do facebook que irá criar uma área no portal zend.com com o intuito de divulgar os grupos de usuários PHP. Não importa de que país e localidade seja o seu grupo de usuários php. Se você quiser divulgar o seu grupo no site oficial da Zend. Envie um e-mail para localphp[arroba]zend.com com as seguintes informações:

Nome do Grupo
Localização do Grupo (Pais e Estado)
Informações para contato
Site
Uma Logo
Curta descrição do grupo.

É uma boa notícia. Ter o seu grupo reconhecido pela empresa responsável pelo desenvolvimento da linguagem PHP é um ótimo empurrãozinho para o seu grupo crescer. Boa Sorte!

[]‘s
Igor.

Posts Relacionados:

Benchmarking de desempenho de código no PHP

4 comments

Posted on 27th October 2009 by Igor Escobar in Otimização |PHP

, ,

Antes de mais nada, Benchmarking é o nome pomposo dado às práticas adotadas na indústria (não importa qual) que visam alcançar um desempenho/qualidade superior. Ou seja, Benchmarking é todo tipo de prática cujo objetivo é melhorar/maximizar/amplificar os resultados.

No artigo de hoje vamos abordar benchmarking focado em código, desempenho especificamente. Não é meu objetivo neste artigo aprofundar sobre profiling etc. Existem muitas práticas de benchmarking que podem ser utilizadas para poder alcançar algum tipo de amplificação na sua área, porém não daria para falarmos detalhadamente de todas em um único artigo.

Quando desenvolvemos aplicações para Internet e o stress da aplicação será muito grande (como um todo), temos que ter cuidado, muito cuidado. Conhecer mais de uma forma de se implementar uma única solução pode ser o que vai salvar o seu pescoço.

Benchmarking de código – na prática

Muitas vezes, quando estamos meditando para solucionar um problema, precisamos saber se aquela implementação é rápida. Mas, como assim, rápida? Como eu vou saber se uma determinada implementação de código/função é rápida o suficiente de forma que supra as necessidades sem comprometer a qualidade de modo geral do sistema?

Vale lembrar que o método que vou mostrar aqui faz com que os resultados variem de máquina para máquina, pois é tudo uma questão de processamento. Os resultados aqui apresentados são apenas para ILUSTRAR e SIMULAR para atingirmos resultados significantes.

Este é o seu momento “MythBusters”.

Descobrir qual é a forma mais rápida de se resolver um problema é uma tarefa simples (nem sempre), em determinados casos, não temos um parâmetro para saber se devemos seguir pelo caminho A ou B, tudo o que nos resta é saber várias formas de se codificar/implementar uma determinada solução e medir o desempenho de todas elas, cada trecho, para assim, resolver o problema.

Vou dar um exemplo de como se medir o desempenho de uma implementação de código, levando em conta um problema que tivemos aqui no trabalho.

Tivemos que desenvolver um framework adhoc (free style) onde nós conseguíssemos obter resultados semelhantes a alguns frameworks bem comuns na Internet como Code Igniter, Cake PHP etc. MVC, Inflector, ActiveRecord, Rotas de Urls etc.

Agora vem a pergunta na cabeça de vocês:
- Por que re-inventar a roda?

A empresa que pediu para que a gente re-inventasse a roda, alegou que estes são frameworks não “oficiais”, e são feitos/mantidos por pessoas em que eles não confiam (untrusted or non certified application).

Resumindo? Eles queriam ver como a “coisa” era implementada, para poder, assim, atingir o melhor desempenho e retirando tudo o que eles não precisam da aplicação, tornando-a mais leve.

A grande questão?

O aquivo ActiveRecord.class.php está demorando muito para terminar o seu serviço, quando você instanciava uma nova classe, a dita cuja tinha um modelo, que, por sua vez, também possuía um controle onde possuía todas as regras do negócio.

Sempre que executássemos uma método da classe por ex ->find, findFirst ou findAll ele retornava um array de objetos, ou seja, era um array e todas as suas posições eram compostas por objetos e suas respectivas propriedades (atributos).

Exemplo

Array
(
    [0] => Usuarios Object
        (
            [nome] => Igor Escobar 1
            [email] => blog@igorescobar.com
        )

    [1] => Usuarios Object
        (
            [nome] => Igor Escobar 2
            [email] => blog@igorescobar.com
        )

    [2] => Usuarios Object
        (
            [nome] => Igor Escobar 3
            [email] => blog@igorescobar.com
        )

)

Era mais ou menos assim que ele retornava os usuários de uma determinada tabela. Este é um array de objetos com apenas 3 elementos, mas para você ter um resultado para que possamos simular um resultado no benchmarking mais expressivo, você precisa de um array de objetos com mais elementos, pois iria exigir mais do processador, etc. No nosso experimento vou aumentar este array de objetos para 10.000 elementos e veremos quanto tempo ele demora para fazer o trabalho.

Medindo o desempenho (do trecho)

Criei uma class de exemplo, apenas para conseguirmos a estrutura vista acima:

<?php
public class Usuarios {
	var $nome;
	var $email;
}
?>

Agora, eu crio a implementação para atingir o resultado esperado:

$arraUsuarios = array();
for($i = 1 ; $i <= 10000; $i++):
	$obUsuarios = new Usuarios();
	$obUsuarios->nome = "Igor Escobar {$i}";
	$obUsuarios->email = "blog@igorescobar.com";
	$arraUsuarios[] = $obUsuarios;
endfor;

Para medir o desempenho exatamente no trecho que queremos, eu utilizo a função microtime() do php.

$time_start = microtime(true);
$arraUsuarios = array();
for($i = 1 ; $i <= 10000; $i++):
	$obUsuarios = new Usuarios();
	$obUsuarios->nome = "Igor Escobar {$i}";
	$obUsuarios->email = "blog@igorescobar.com";
	$arraUsuarios[] = $obUsuarios;
endfor;
$time_end = microtime(true);
$Benchmarking1 = ($time_end - $time_start);
echo "Array de Objetos levou: " . $Benchmarking1 . " microsecondos<br />\n";
//Output: Array de Objetos levou: 0.04233980178833 microsecondos

Agora vamos criar uma outra implantação, ao invés de retornarmos uma array de objetos, vamos retornar um array de arrays, ou seja, seria uma array com n posições e todas as suas propriedades seriam INDICES do array e não mais atributos do objeto.

Exemplo

Array
(
    [0] => Array
        (
            [nome] => Igor Escobar 1
            [email] => blog@igorescobar.com
        )

    [1] => Array
        (
            [nome] => Igor Escobar 2
            [email] => blog@igorescobar.com
        )

    [2] => Array
        (
            [nome] => Igor Escobar 3
            [email] => blog@igorescobar.com
        )

)

O mesmo script, apenas montando de maneira diferente (array de arrays), ficou assim:

$time_start = microtime(true);
$arraUsuarios = array();
for($i = 1 ; $i <= 10000; $i++):
	$arraUsuarios[] = array (
			'nome' => "Igor Escobar {$i}",
			'email' => 'blog@igorescobar.com'
		);
endfor;
$time_end = microtime(true);
$Benchmarking2 = ($time_end - $time_start);
echo "Array de Arrays levou: " . ($Benchmarking2) . " microsecondos<br />\n";
//Output: Array de Arrays levou: 0.036391973495483 microsecondos

Qual método é mais rápido?

// Se resultado for negativo: Método 1 é mais rápido
// Se resultado for positivo: Método 2 é mais rápido
echo "Resultado: " . ($Benchmarking1 - $Benchmarking2);
//Output: Resultado: 0.007580041885376

Viram? Duas formas de fazer a mesma coisa e a segunda forma é 0.007580041885376 microsegundos mais rápida.

Conclusão

Neste simples teste, podemos tirar a seguinte conclusão: neste caso, utilizar a minha estrutura de retorno como um array de objetos é mais lento do que trabalhar com um array de arrays. Este é um teste fora da realidade, quanto mais próximo da realidade a complexidade do dia-a-dia, este número aumenta, tende a ser cada vez maior.

Veja que este exemplo não envolve conexão com banco de dados, acrescente todo o stress que envolve validação de regras de negócio, segurança, consistência e etc., e veja este número crescer MUITO mais.

Vale lembrar que eu não estou dizendo para vocês não, nunca mais, utilizarem objetos, porque não é isso, estou apenas ilustrando que NESTE CASO, foi mais rápido, e mais interessante para o projeto que o retorno desta função fosse um array de arrays, é tudo uma questão de escolher entre mysql_fetch_assoc, mysql_fetch_array, mysql_fetch_object ou mysql_fetch_row, cada uma tem suas características e são válidas dependendo da sua necessidade em questão.

Você pode aplicar isso em “tudo” na sua aplicação, até para saber quanto tempo uma determinada função demora para terminar seu trabalho basta utilizar o microtime() no começo e no final da função e subtrair os valores do maior para o menor.

$time_start = microtime(true);
//nome da função
$time_end = microtime(true);

E é isso, pessoal, espero que tenham gostado. Certamente, se vocês utilizarem este recurso para o seu crescimento profissional, será de muita valia para vocês.

Fonte Completo

<?php
class Usuarios {
	var $nome;
	var $email;
}

$time_start = microtime(true);
$arraUsuarios = array();
for($i = 1 ; $i <= 10000; $i++):
	$obUsuarios = new Usuarios();
	$obUsuarios->nome = "Igor Escobar {$i}";
	$obUsuarios->email = "blog@igorescobar.com";
	$arraUsuarios[] = $obUsuarios;
endfor;
$time_end = microtime(true);
$Benchmarking1 = ($time_end - $time_start);
echo "Array de Objetos levou: " . $Benchmarking1 . " microsecondos<br />\n";

$time_start = microtime(true);
$arraUsuarios = array();
for($i = 1 ; $i <= 10000; $i++):
	$arraUsuarios[] = array (
			'nome' => "Igor Escobar {$i}",
			'email' => 'blog@igorescobar.com'
		);
endfor;
$time_end = microtime(true);
$Benchmarking2 = ($time_end - $time_start);
echo "Array de Arrays levou: " . ($Benchmarking2) . " microsecondos<br />\n";

// Se resultado for negativo: Método 1 é mais rápido
// Se resultado for positivo: Método 2 é mais rápido
echo "Resultado: " . ($Benchmarking1 - $Benchmarking2);

?>

[]‘s
Igor.

UPDADE: Este artigo foi reformulado devido a muitas dúvidas e questionamentos referentes a este meu método. Obrigado a todos que ajudaram no amadurecimento do conteúdo.

Posts Relacionados: