Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O Fim dos Arrays: Explorando Collections e Estr...

O Fim dos Arrays: Explorando Collections e Estruturas de Dados em PHP

O array é uma estrutura de dados flexível porém insuficiente (e às vezes ineficiente) para a representação do domínio de uma aplicação. Essa palestra explorará o poder das collections e estruturas de dados em PHP apresentando a SPL e a biblioteca DS. Serão abordadas Interfaces, Iterators, Lists, Double Linked Lists, Stacks, Queues, Maps, Sets e Heaps com exemplos de aplicações reais e mostrando seus prós e contras. Compreender o funcionamento das Collections e estruturas de dados melhorará o seu mindset e te ajudará a tomar uma melhor decisão durante o processo de modelagem de sua aplicação.

Avatar for Marcos Felipe

Marcos Felipe

March 06, 2018
Tweet

More Decks by Marcos Felipe

Other Decks in Programming

Transcript

  1. SPL Standard PHP Library • Interfaces • Iterators • Data

    structures • Exceptions • Functions https://php.net/spl
  2. IteratorAggregate ➔ Objeto possui um iterador ➔ Não é um

    iterador ➔ Separe o objeto da lógica do iterator
  3. SPL - Iterators • AppendIterator • ArrayIterator • CachingIterator •

    CallbackFilterIterator • DirectoryIterator • EmptyIterator • FilesystemIterator • FilterIterator • GlobIterator • InfiniteIterator • IteratorIterator • LimitIterator • MultipleIterator • NoRewindIterator • ParentIterator • RecursiveArrayIterator • RecursiveCachingIterator • RecursiveCallbackFilterIterator • RecursiveDirectoryIterator • RecursiveFilterIterator • RecursiveIteratorIterator • RecursiveRegexIterator • RecursiveTreeIterator • RegexIterator
  4. ➔ Filtrar todos os arquivos MP3 e JPG; ➔ Filtrar

    todos os JPG que são maiores que 1mb; ➔ Não filtrar todos; ➔ Procurar nos subdiretórios.
  5. Map

  6. Set

  7. In the real world Laravel • SplFileInfo Symfony • SplFileInfo

    • SplFileObject • SplObjectStorage • SplPriorityQueue Zend • SplObjectStorage • SplStack • SplFileInfo • SplPriorityQueue • SplFixedArray
  8. ✘ Conheça o tipo do seu dado; ✘ Estrutura de

    dados são quase sempre alternativas para arrays; ✘ Não use SplStack/SplQueue para leitura aleatória; ✘ Não use SplFixedArray quando precisar de aumento de performance; ✘ Performance não precisa ser sua prioridade. Dicas