Тёмный

FrankenPHP - Uma nova forma de executar aplicações PHP | Dias de Dev 

Dias de Dev
Подписаться 33 тыс.
Просмотров 17 тыс.
50% 1

FrankenPHP, Swoole, RoadRunner, ReactPHP, PHP-FPM... São muitas as formas que podemos utilizar para executar aplicações PHP na Web. Nesse vídeo eu vou te explicar como funciona esse tal de FrankenPHP e vou compará-lo com o #Swoole em uma aplicação #Laravel utilizando Laravel Octane.
Se quiser aprender mais sobre programação e tecnologia em geral, aqui tem 15% de desconto na Alura:
tidd.ly/43UfATs
Post no blog falando como o PHP é executado na Web:
dias.dev/2021-06-15-como-o-ph...
Post no blog sobre I/O não bloqueante (programação assíncrona) com PHP puro:
dias.dev/2020-09-16-php-assin...
E se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no RU-vid ou se tornar um "sponsor" lá no GitHub:
github.com/sponsors/CVinicius...
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: t.me/diasdedev
Twitter: / cviniciussdias
LinkedIn: / cviniciussdias
GitHub: github.com/CViniciusSDias/
0:00 - Introdução
0:36 - Hype sobre FrankenPHP
1:50 - Conhecendo o FrankenPHP
2:16 - Como PHP funciona na Web com PHP-FPM
3:40 - Como PHP funciona na Web com FrankenPHP e Swoole
4:29 - O que é EventLoop
6:20 - Worker mode do FrankenPHP
7:09 - O que é FrankenPHP
8:25 - Como o FrankenPHP roda goroutines
9:28 - Executando aplicação com Laravel Octane
11:54 - Benchmark Swoole vs FrankenPHP com Laravel Octane
14:51 - Quando usar o FrankenPHP
15:26 - Quando usar o Swoole
16:33 - Como aprender mais sobre Swoole
17:08 - Conclusão

Наука

Опубликовано:

 

30 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 99   
@DiasDeDev
@DiasDeDev 4 месяца назад
Links: Se quiser aprender mais sobre programação e tecnologia em geral, aqui tem 10% de desconto na Alura: alura.tv/diasdedev E se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no RU-vid ou se tornar um "sponsor" lá no GitHub: github.com/sponsors/CViniciusSDias Post no blog falando como o PHP é executado na Web: dias.dev/2021-06-15-como-o-php-funciona-na-web/ Post no blog sobre I/O não bloqueante (programação assíncrona) com PHP puro: dias.dev/2020-09-16-php-assincrono-de-forma-nativa/ Projeto utilizado no vídeo para realizar o benchmark: github.com/CViniciusSDias/frankenphp-swoole-octane
@felipeassumpcao3039
@felipeassumpcao3039 4 месяца назад
Como aguardava isso! Continue trazendo conteúdo no canal!
@DiasDeDev
@DiasDeDev 4 месяца назад
Opa, espero que goste do vídeo. 😁😁
@alissonsilva9419
@alissonsilva9419 4 месяца назад
Ótimo conteúdo, vim seco só pra ver o lance do FrankenPHP mas vc deu uma aula sobre servidores, muito bom cara!
@DiasDeDev
@DiasDeDev 4 месяца назад
Fico feliz demais que tenha curtido. E obrigado por ter sugerido esse tema! 🤩
@brunoggdev6305
@brunoggdev6305 4 месяца назад
Esperei muito por esse video aqui hein, animado
@DiasDeDev
@DiasDeDev 4 месяца назад
Espero que goste. 😁
@zakrom3763
@zakrom3763 4 месяца назад
Traz mais conteúdo de Machine learning em php, gostei bastante do seu video do rubix ml
@DiasDeDev
@DiasDeDev 4 месяца назад
Vou preparar algo sim. 😁
@renatofrota
@renatofrota 4 месяца назад
Muito bem explicado. Podia ter adicionado benchmarks com o PHP-FPM + Nginx padrão para efeito de comparação.
@DiasDeDev
@DiasDeDev 4 месяца назад
Boa, Renato. Podia mesmo.
@osmaloureiro
@osmaloureiro 4 месяца назад
mais uma mega aula do carlāo!! manja de mais! tmj sempre
@DiasDeDev
@DiasDeDev 4 месяца назад
Heheheh Carlão me pegou. kkkkk
@DiegoBrocanelli
@DiegoBrocanelli 4 месяца назад
Excelente vídeo, parabéns!
@DiasDeDev
@DiasDeDev 4 месяца назад
Que bom que curtiu! :-D
@sahdoio
@sahdoio 4 месяца назад
Ótimo contéudo sobre o assunto
@DiasDeDev
@DiasDeDev 4 месяца назад
Que bom que gostou! 🤩
@TioJobs
@TioJobs 4 месяца назад
Boaaaa!!! Conteúdo top d+! ❤
@DiasDeDev
@DiasDeDev 4 месяца назад
Muito obrigado 😁
@ngomafortuna2667
@ngomafortuna2667 Месяц назад
Muito bom claro e profundo.
@DiasDeDev
@DiasDeDev Месяц назад
Que bom que gostou 😁
@user-dq6oj2cd4v
@user-dq6oj2cd4v 3 месяца назад
Mano, que explicação do caralh*! Muito bom! Obrigado!
@DiasDeDev
@DiasDeDev 3 месяца назад
Que bom que curtiu, mano! :-D
@dmoitim
@dmoitim 4 месяца назад
Boooooooooooa.. parabéns pelo vídeo.
@DiasDeDev
@DiasDeDev 4 месяца назад
Que bom que curtiu! :-D
@arturvidopicoli6735
@arturvidopicoli6735 4 месяца назад
Como sempre, informação de qualidade e direto ao ponto! Como tenho pouco tempo de área, e normalmente não participo de decisões do tipo ao arquitetar uma aplicação, acabo me perguntando em quais casos seria interessante utilizar o PHP com esse tipo de abordagem, igual do Swoole ou Franken PHP. Via de regra, só seria válido em aplicações robustas onde o número de requisições são altíssimas? Ou seria o caso de não utilizar mais o PHP FPM e priorizar sempre essas abordagens mais modernas? Fico me perguntando quais os critérios para decidir algo do tipo :D ....Valeu! Um abraço.
@DiasDeDev
@DiasDeDev 4 месяца назад
Eu só iria pra essas abordagens onde o número de requisições for alto suficiente pro php-fpm ser um gargalo na aplicação. O custo de migrar pra essa arquitetura pode ser bem baixo se o sistema for corretamente desenvolvido. E se o sistema não for corretamente desenvolvido, então ter usado essa abordagem desde o início poderia ter sido desastroso. Rsrsrsrs
@rodrigobonfim9011
@rodrigobonfim9011 4 месяца назад
PHP tenho uma vontade imensa de aprender essa linguagem, acho muito massa. Estou me organizando, quem sabe um dia entre de cabeça de vez.
@DiasDeDev
@DiasDeDev 4 месяца назад
É uma ótima linguagem! 😁
@heverrtonfb
@heverrtonfb 4 месяца назад
PHP e vida
@DiasDeDev
@DiasDeDev 4 месяца назад
😁
@brunoggdev6305
@brunoggdev6305 4 месяца назад
Muuuito interessante, e aí a aplicação roda normalmente? Digo, eu só vi por alto, mas parece que no Swoole você precisa usar métodos específicos para utiliza-lo satisfatoriamente. Com FrankenPHP seria possível apenas migrar uma aplicação já existente sem maiores configurações? Talvez um vídeo sobre isso ficasse bacana
@DiasDeDev
@DiasDeDev 4 месяца назад
Com Swoole não precisa fazer nada diferente não, se usar o Octane. Só usar e tirar proveito também. A aplicação roda normalmente com as limitações descritas na doc do Octane. Fora do Octane a história muda. Swoole tem mais poderes do que o FrankenPHP. É perfeitamente possível rodar uma aplicação que roda no PHP-FPM com FrankenPHP sem mexer em nada, mas pra usar o worker mode, que é o que traz mais performance, precisa se atentar aos mesmos detalhes do que com Swoole.
@brunoggdev6305
@brunoggdev6305 4 месяца назад
@@DiasDeDev Hmmm entendo entendo
@tgbaldo
@tgbaldo 4 месяца назад
Legal, tinha ouvido falar e até vi o PR que o criador do FrankenPHP fez para o Laravel. Dúvida: as requests que caem no Caddy com FrankenPHP compartilham memória por estar sendo executadas em uma goroutine? Ou seja: preciso me preocupar com vazamento de memória, principalmente quando estou lidando com objetos singleton, ou o FrankenPHP "resolve" (coloquei entre aspas, pois não é um problema, mas um comportamento) isso?
@DiasDeDev
@DiasDeDev 4 месяца назад
Se estiver usando o "worker mode", sim, precisa se preocupar. Até por isso na documentação do Octane esses problemas são citados. No worker mode, todo o seu projeto é inicializado e cada requisição é tratada nesse mesmo processo. Singleton e propriedades estáticas são os principais vilões, principalmente em projetos Laravel.
@jleonardolemos
@jleonardolemos 4 месяца назад
Interessante em Lorde. No caso do swoole e octane existe uma preocupaçao com o compartilhamento de informações entre as requests. O mesmo se aplica ao frankenPhp sera?
@DiasDeDev
@DiasDeDev 4 месяца назад
Sim sim. Isso é uma característica inerente à abordagem de subir sua aplicação 1x e deixá-la rodando pra sempre
@barrajr5369
@barrajr5369 4 месяца назад
Faz vídeo sobre hyperf
@DiasDeDev
@DiasDeDev 4 месяца назад
To querendo fazer há um tempo, mas queria preparar com mais carinho. Tá faltando tempo. rsrsrs Mas valeu pela sugestão. :-D
@HenriqueFLA
@HenriqueFLA 4 месяца назад
Fala Vinícius, sabe informar qual é aquele site que você mencionava lá no curso de git da alura, era um site que tinha várias opções de formatação para git. Abs
@DiasDeDev
@DiasDeDev 4 месяца назад
Só me lembro de mostrar a documentação do git mesmo.
@HenriqueFLA
@HenriqueFLA 4 месяца назад
@@DiasDeDev vixi, era um git e Github compartilhe seu código da Oracle one, tinha uma parte logo depois de você mostrar a ferramenta vizualizingGit kk
@aleragayu
@aleragayu 2 месяца назад
Penso em desenvolver um SaaS via WP com hosting em uma VPS gringa bem parruda, gosto da forma de controle simplificada. A questão é que não manjo diretamente de PHP... Você já usou PHP no WP com Laravel integrado? Ou sabe algo referente a WP? Vlw!
@DiasDeDev
@DiasDeDev 2 месяца назад
WordPress é um CMS. Laravel é um framework fullstack. Não faz sentido ter ambos num projeto. Mas não, nunca trabalhei com WordPress.
@guilhermeluiz2379
@guilhermeluiz2379 4 месяца назад
E como fica as variaveis estáticas? Pq no método tradicional, elas somem após finalizar a requisição... No frankem ela se manteira como em outras linguagens?
@DiasDeDev
@DiasDeDev 4 месяца назад
Sim, elas se mantém entre as requisições. É preciso tomar cuidado.
@mathewslima3235
@mathewslima3235 4 месяца назад
Uma dúvida com relação ao deploy usando Swoole/Franken. Geralmente usando Nginx + FPM, posso fazer o deploy de boas, pois, na próxima requisição já tera o código atualizado. Mas Swoole/Franken mantém a aplicação rodando após subir na primeira vez. Se eu fizer um deploy, como seria o fluxo? Eles fornecem algum Hot Reload? Durante o deploy o sistema iria ficar "offline" até subir o servidor novamente?
@DiasDeDev
@DiasDeDev 4 месяца назад
Você reinicia o servidor no deploy. Se a aplicação precisa de coisas como frankenphp ou swoole, ela vai ter um esquema de blue-green ou coisa do tipo, então não precisa ter downtime. ;-)
@DiasDeDev
@DiasDeDev 4 месяца назад
PS.: com opcache preload você precisa reiniciar o servidor php-fpm também ao fazer deploy.
@Guilherme3s
@Guilherme3s 4 месяца назад
Fala sobre o php em 2024 por favor. E também a sua perspectiva sobre esse ano. Ainda confuso, já tenho o php como stack, mas meio incerto sobre 2024
@DiasDeDev
@DiasDeDev 4 месяца назад
Pra essa não precisa de vídeo. Tá aqui: Perspectiva é a mesma de todos os anos. Uma das melhores linguagens para se aprender e usar na Web. Não para de evoluir e melhorar, apesar de continuarem dizendo que vai morrer. Nada novo sob o sol. hahahah
@ryanpereiras
@ryanpereiras 4 месяца назад
​estamos a 4 anos aguardando
@DiasDeDev
@DiasDeDev 4 месяца назад
Aguardando o quê? O PHP morrer? Vixi, tem muito mais do que 4 anos que dizem que ele tá morrendo. Tá mais perto dos 20 anos de tentativa de acabar com o coitado. kkkkkk
@ryanpereiras
@ryanpereiras 4 месяца назад
@@DiasDeDev sim kakakak 4 anos eu to ouvindo que Python e JS vai acabar com ele
@Guilherme3s
@Guilherme3s 4 месяца назад
@@DiasDeDev o ponto não seria sobre isso. É conversa antiga essa parte ai. Uma visão sobre as i.as, implementações com ela nos projetos e o que esperar para 2024.
@Henry_Nunez
@Henry_Nunez 4 месяца назад
👉🔔👈
@FranciscoMarcosMilhomemAbreu
@FranciscoMarcosMilhomemAbreu 4 месяца назад
Qual é esse editor de código?
@DiasDeDev
@DiasDeDev 4 месяца назад
É uma IDE. PHPStorm
@miguilim240
@miguilim240 4 месяца назад
Sinistrooo
@DiasDeDev
@DiasDeDev 4 месяца назад
:-D
@WandersonSangreal
@WandersonSangreal 4 месяца назад
kkk... node que voa bruxão!
@DiasDeDev
@DiasDeDev 4 месяца назад
PHP > Node 👍
@h.s3187
@h.s3187 4 месяца назад
Voa alto nos problemas de dependencias deprecaciadas
@WandersonSangreal
@WandersonSangreal 4 месяца назад
@@DiasDeDev não estou desmerecendo o PHP, nasci nesse berço e sei da importância que ele tem pra mim até hoje e pra web de forma geral... mas vejo esse movimento como um reconhecimento do event loop do node
@WandersonSangreal
@WandersonSangreal 4 месяца назад
​@@h.s3187 dependências são feitas por pessoas/comunidades, não entendi porque esse é um problema do node...
@DiasDeDev
@DiasDeDev 4 месяца назад
Mas EventLoop não é do node. Inclusive o ReactPHP surgiu na mesma época que o Node.js com exatamente a mesma ideia. rsrsrs Node só usa um conceito super antigo, assim como o PHP também usa. :-D FrankenPHP é só mais uma ferramenta que faz uso da técnica e Event Loop nem é a novidade na ferramenta. rsrsrs
@flow_code
@flow_code 4 месяца назад
Meu sonho é ver o php trabalhar com c++. Imagina trabalhar com php para desenvolver jogos estilo da unreal 😮... seria muito bom
@miguilim240
@miguilim240 4 месяца назад
E aquele blog post do laravel com benchmark dizendo que o FrankenPHP tinha um tempo médio de resposta bem menor que o Swoole? Era fake news do zap?
@DiasDeDev
@DiasDeDev 4 месяца назад
Não. Esses benchmarks não devem ser levados a sério (assim como o meu também não). Não são feitos em ambientes controlados e muita coisa pode interferir. O ponto principal, tanto nesse vídeo quanto no post que você viu, é o seguinte: a performance de ambos é muito similar quando usado dentro do Octane.
@miguilim240
@miguilim240 4 месяца назад
@@DiasDeDev Saquei 😁
@VanNeves
@VanNeves 4 месяца назад
NodePHP
@DiasDeDev
@DiasDeDev 4 месяца назад
Esse era o nome original do ReactPHP. Mas ele e o node estavam surgindo ao mesmo tempo com a exata mesma ideia. Mas o Node não trouxe nenhuma novidade e esse modelo de execução é usado por diversas linguagens e runtimes. ;-)
@JoaoPedro-uw8nz
@JoaoPedro-uw8nz 4 месяца назад
Vinicius, se me permite tirar uma dúvida, você recomendaria assinar a php[architect] hoje em dia? Dito isso, excelente video!! Tenho buscado estudar sobre reactphp e swoole recentemente, seu canal, curso na alura e esse canal aqui: ru-vid.com/group/PLKIEFFgNQYpVmUAKUjT_BRYYOdMHwGt0v tem me auxiliado bastante.
@DiasDeDev
@DiasDeDev 4 месяца назад
Eu só tenho uma edição da magazine (impressa) que é a edição pra qual eu escrevi. Se o valor não for pesar pra você, não vejo mal nenhum em assinar. Mas não é nenhum tipo de "conteúdo exclusivo" ou "premium" não.
@JoaoPedro-uw8nz
@JoaoPedro-uw8nz 4 месяца назад
Compreendi, obrigado pela explicação!!@@DiasDeDev
@osmaloureiro
@osmaloureiro 4 месяца назад
meu objetivo em 2024 e ter o ingles afiado igual do carlāo.
@DiasDeDev
@DiasDeDev 4 месяца назад
Dá pra ser melhor que eu, pow. rsrsrsrs
@MD-km1yd
@MD-km1yd 4 месяца назад
Php estudo muito mais não consigo emprego
@renatofrota
@renatofrota 4 месяца назад
talvez falte estudar português pra aprender a diferença entre "mas" e "mais"
@aleragayu
@aleragayu 2 месяца назад
​@@renatofrota Parece que não só ele deve estudar português, mas você também. Afinal, iniciou seu comentário com letra escrita em minúsculo, e no fim nem usou ponto para finalizar. O sujo falando do mal lavado! Cuidado pra não passar vergonha em rede social julgando os outros, sabichão. Se é pra falar da escrita dos outros, que ao menos você mesmo escreva corretamente.
@renatofrota
@renatofrota 2 месяца назад
@@aleragayu você errou totalmente a pontuação do seu comentário, também precisa estudar. eu não uso letra maiúscula por opção, é apenas estilo pessoal, não interfere o entendimento e é muito diferente de errar gramática. 😘
@aleragayu
@aleragayu 2 месяца назад
@@renatofrota É mesmo? Onde? Não adianta vir querer fazer malabarismo e inventar desculpinha de seu erro ao julgar alguém que faz o mesmo que você. Ignorância pura. Independentemente de ser estilo pessoal ou não, tá errado, e a partir do momento que você julga alguém por escrever errado e você também escreve, é burrice. *Edit: fico no aguardo do erro imaginário que você criou ao ler meu comentário.
@leandrocc84
@leandrocc84 2 месяца назад
​@@aleragayuo engraçado é ele tentando justificar a própria cilada, adoro ver esses fiscais de comentários caindo na própria armadilha kkkkkkkk
@brianferreira15
@brianferreira15 16 дней назад
Não sei vcs, mas eu particularmente sinto um desconforto mt grande quando vejo em uma solução para uma linguagem que usa outra linguagem como base por trás, ou seja, o FrankenPHP usar o GO é mesmo que descredibilizar totalmente o PHP e dizer que ele n consegue ser bom sozinho. KKKK parece bobagem mas sei lá, eu acabo tendo essa ideia. 😅
@DiasDeDev
@DiasDeDev 9 дней назад
Não faz muito sentido não. O FrankenPHP usa Go porque o Caddy foi feito em Go, então facilita essa integração.
@thalissonvieira7008
@thalissonvieira7008 4 месяца назад
nodezaram o php? Não vou mentir que não gostei ein
@DiasDeDev
@DiasDeDev 4 месяца назад
ReactPHP surgiu antes do Node, sabia? rsrsrs EventLoop não foi criado pelo Node. :-D
@elienaycarvalho
@elienaycarvalho 4 месяца назад
Já fez uma app que consome Gui nativa em qualquer os? Pode ser Windows 3.11 ou ainda mais antigo... Vc vai precisar de um event loop
Далее
BRAWL STARS x DRAGONFORCE: A Draco Tale
03:46
Просмотров 8 млн
Swoole - Tudo sobre o PHP Swoole
28:41
Просмотров 3,9 тыс.
📱 SAMSUNG, ЧТО С ЛИЦОМ? 🤡
0:46
Просмотров 1,7 млн
IPad Pro fix screen
1:01
Просмотров 12 млн