Parabéns pelo vídeo! Gostei da sua explicação! Já tive que usar generators algumas vezes, mas a que lembro mais recente foi para não estourar a memória por conta de um array em um relatório em que eu tinha que gerar uma listagem de vários valores relacionados a vendedores, sendo que a quantidade de colunas aumentava de acordo com o intervalo de datas, então caso passasse um intervalo de datas grande, tinham muitas colunas (quantidade de dias vezes a quantidade de valores para serem mostrados por vendedores, e as linhas eram cada vendedor cadastrado no sistema). A Query no banco de dados trazia cada item por linha usando generate_series do PostgreSQL para gerar o intervalo de datas, então como eram muitos registros, o fetch era feito por item e a solução do relatório fazer a transposição dos dados usando yield e escrita via stream, porque senão, estourava memória. Continue compartilhando seu conhecimento! Sucesso para você! Um abraço!
Fala Vini parabens pelo conteudo! Existe o Swoole PHP tambem que usa a coroutine, se puder ate fazer um video demonstrando o framework seria legal :) tmj!!
Mano! tu é sensacional, já tinha visto uns vídeos seu no canal da alura e cara, é contagiante ver o quão voce domina essa linguagem!! Sei que tu é tutor da alura, mas seria sensacional um curso seu completo de php!! Enfim, fica uma dúvida que talvez possa servir de vídeo :) A respeito da execução do php ... tipo, php é como se fosse uma especie de framework em C, pelo menos eu vejo assim husauhshua, então assim, minha dúvida é, quando é gerado os opcodes, são gerados em base da linguagem do php mesmo, ou são apartir do código em C ?
Opa, fico muito feliz que você curta meu trabalho, Caio. Agora quanto ao PHP. Ele sim nasceu como um framework de C pra web, mas hoje é uma linguagem completa. A runtime de PHP é escrita em C. É o motor que efetivamente executa os códigos PHP. Os opcodes que o opcache são códigos já "parseados" de PHP no formato que a engine entende. :-) Essa é uma superssimplificação do processo, mas espero que ajude a entender um pouco
ótimo vídeo cara. Vou assistir de novo pra entender direito =D Com essas coroutines eu poderia então fazer com que a aplicação executasse um método em background e após responder a request de um client? Tipo, client fez request, eu chamo um método que vai executar uma tarefa demorada usando o yield pra não bloquear o código e assim posso responder a request pro client. Funcionaria?
Lucas, não porque pra devolver a resposta o processo precisa ser finalizado. Nesse seu caso você quer algo como fila de mensagens, ou algo mais rudimentar como fastcgi_finish_request
@@DiasDeDev Entendi, no meu caso esse fastcgi_finish_request não estava atendendo o que eu precisava, o que fiz foi fazer uma nova request pro servidor com timeout zero e abafei a exceção, assim eu consigo responder pro client e executar as rotinas demoradas em background. Eu não poderia usar um Job (como normalmente faço com o Laravel), pq estou fazendo um plugin pra wordpress, então as opções são limitadas pois quero atingir o máximo possível de ambientes =D
Parabéns pelo vídeo!
Gostei da sua explicação!
Já tive que usar generators algumas vezes, mas a que lembro mais recente foi para não estourar a memória por conta de um array em um relatório em que eu tinha que gerar uma listagem de vários valores relacionados a vendedores, sendo que a quantidade de colunas aumentava de acordo com o intervalo de datas, então caso passasse um intervalo de datas grande, tinham muitas colunas (quantidade de dias vezes a quantidade de valores para serem mostrados por vendedores, e as linhas eram cada vendedor cadastrado no sistema).
A Query no banco de dados trazia cada item por linha usando generate_series do PostgreSQL para gerar o intervalo de datas, então como eram muitos registros, o fetch era feito por item e a solução do relatório fazer a transposição dos dados usando yield e escrita via stream, porque senão, estourava memória.
Continue compartilhando seu conhecimento!
Sucesso para você!
Um abraço!
Sensacional. Esse exemplo de muitos dados vindo do banco é o mais comum de acontecer mesmo.
Obrigado, Vinícius. Exemplo simples e prático. Ajudou bastante.
Opa, fico feliz que tenha útil, Rui.
😁
parabéns Vinícius! conteúdo de qualidade, ótima didática e muito explicativo =)
Muito obrigado pelo feedback, Ana!
Já cheguei mandando like, conteúdo sempre top, aguardando ansioso pelo vídeo de generator.
Opa, valeu pela moral, Wesley! Tmj!!
Tudo tranquilo Vinícius?
Seria uma boa sim ter o vídeo sobre generator.
Pra mim é igual caviar, já ouvi sobre, mas nunca soube onde utilizar.
Boa, Fernando. Vou preparar sim! :-D
seria maneiro um vídeo sobre generator!!!
Achei espetacular o vídeo, tá de parabéns!
Opa, seu desejo é uma ordem
Excelente, como sempre!
E adoraria um vídeo sobre generators!
Boa, Josemar. Vou preparar. Valeu pelo feedback!
Excelente explicação.
Fico feliz que tenha curtido! :-D
Seria legal sim um vídeo de generator!
Opa, vou preparar algo legal. :-D
show de bola
Que bom que curtiu, Claudio.
😁
Muito bom mano!! Vc explica bem demais!
Opa, valeu demais, man!
Fale mais sobre os generators
Opa, já falei aqui, Nilton:
th-cam.com/video/1_TnGAxEoPk/w-d-xo.html
:-D
Valeu!
Obrigado demais, Erick!
🤩
Muito bom!
Que bom que curtiu, Michel. :-)
Fala Vini parabens pelo conteudo!
Existe o Swoole PHP tambem que usa a coroutine, se puder ate fazer um video demonstrando o framework seria legal :)
tmj!!
Fala, xará! Pretendo fazer algo no futuro sim. Até por isso não usei ele de exemplo também.
Valeu pela dica. :-D
Top
:-D
Mano! tu é sensacional, já tinha visto uns vídeos seu no canal da alura e cara, é contagiante ver o quão voce domina essa linguagem!! Sei que tu é tutor da alura, mas seria sensacional um curso seu completo de php!! Enfim, fica uma dúvida que talvez possa servir de vídeo :)
A respeito da execução do php ... tipo, php é como se fosse uma especie de framework em C, pelo menos eu vejo assim husauhshua, então assim, minha dúvida é, quando é gerado os opcodes, são gerados em base da linguagem do php mesmo, ou são apartir do código em C ?
Opa, fico muito feliz que você curta meu trabalho, Caio.
Agora quanto ao PHP. Ele sim nasceu como um framework de C pra web, mas hoje é uma linguagem completa. A runtime de PHP é escrita em C. É o motor que efetivamente executa os códigos PHP.
Os opcodes que o opcache são códigos já "parseados" de PHP no formato que a engine entende. :-)
Essa é uma superssimplificação do processo, mas espero que ajude a entender um pouco
Parabéns conteúdo muito legal, no php 7 já tem ou só a partir do 8?
Desde o PHP 5.5.
rsrsrs
ótimo vídeo cara. Vou assistir de novo pra entender direito =D Com essas coroutines eu poderia então fazer com que a aplicação executasse um método em background e após responder a request de um client?
Tipo, client fez request, eu chamo um método que vai executar uma tarefa demorada usando o yield pra não bloquear o código e assim posso responder a request pro client. Funcionaria?
Lucas, não porque pra devolver a resposta o processo precisa ser finalizado. Nesse seu caso você quer algo como fila de mensagens, ou algo mais rudimentar como fastcgi_finish_request
@@DiasDeDev Entendi, no meu caso esse fastcgi_finish_request não estava atendendo o que eu precisava, o que fiz foi fazer uma nova request pro servidor com timeout zero e abafei a exceção, assim eu consigo responder pro client e executar as rotinas demoradas em background.
Eu não poderia usar um Job (como normalmente faço com o Laravel), pq estou fazendo um plugin pra wordpress, então as opções são limitadas pois quero atingir o máximo possível de ambientes =D
Fala sobre o Fibers parece muito com programação paralela
Fibers são exatamente o que foi citado nesse vídeo: corrotinas. :-)
Aqui eu falo sobre Fibers: th-cam.com/video/CFKGFYjJeY8/w-d-xo.html
should i swoole or should i go
Interessante. Creio que não existe em Java, ou existe?
Em Kotlin eu sei que tem, então imagino que deva ser possível fazer com Java, mas "nativamente", até onde eu sei, não.
Faz um vídeo sobre generator :)
Opa, já tem, Thalles. :-D
Tava até na tela final do vídeo. ;-p
já entro dando like e rt no video fodase fi
Aí sim!