O Iterador é um padrão de projeto comportamental que permite a passagem sequencial através de uma estrutura de dados complexa sem expor seus detalhes internos.
Graças ao Iterator, os clientes podem examinar elementos de diferentes coleções de maneira semelhante usando uma única interface iterador.
Exemplos de uso: O padrão é muito comum no código PHP. Muitos frameworks e bibliotecas o usam para fornecer uma maneira padrão de percorrer suas coleções.
O PHP possui uma interface Iterator embutida que pode ser usada para criar iterators personalizados compatíveis com o restante do código PHP .
Identificação: O iterador é fácil de reconhecer pelos métodos de navegação (como next, previous e outros). O código cliente que usa iteradores pode não ter acesso direto à coleção que está sendo percorrida.
Exemplo conceitual
Este exemplo ilustra a estrutura do padrão de projeto Iterator. Ele se concentra em responder a estas perguntas:
De quais classes ele consiste?
Quais papéis essas classes desempenham?
De que maneira os elementos do padrão estão relacionados?
Depois de aprender sobre a estrutura do padrão, será mais fácil entender o exemplo a seguir, com base em um caso de uso PHP do mundo real.
index.php: Exemplo conceitual
Output.txt: Resultados da execução
Exemplo do mundo real
Como o PHP já possui uma interface Iterator embutida, que fornece integração conveniente com loops foreach, é muito fácil criar seus próprios iteradores para percorrer quase todas as estruturas de dados imagináveis.
Este exemplo do padrão Iterator fornece acesso fácil aos arquivos CSV.