Novidades do PHP 8.4 - Descubra sobre os novos Property Hooks | Dias de Dev

  Рет қаралды 5,789

Dias de Dev

Dias de Dev

Күн бұрын

Пікірлер: 72
@DiasDeDev
@DiasDeDev Ай бұрын
🤑 15% de desconto na Alura → tidd.ly/4df0vz7 🪄 Post sobre métodos mágicos → dias.dev/2023-08-11-metodos-magicos-php/ 📊 Post sobre economia de recursos do PHP → dias.dev/2024-04-18-copy-on-write-php/ 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 KZbin ou se tornar um "sponsor" lá no GitHub: github.com/sponsors/CViniciusSDias
@jonatasbaldan
@jonatasbaldan Ай бұрын
estou estundando C# depois de aprender PHP, é legal de ver a semelhança entre as duas linguagens. Com certeza saber o PHP antes me ajudou a me familiarizar mais rápido com o C#.
@DiasDeDev
@DiasDeDev Ай бұрын
Sem dúvida ajuda muito!
@ms-daniel
@ms-daniel Ай бұрын
qualquer linguagem com sintaxi parecida com C/C++ será facil de aprender qnd vc aprende uma delas. São todas parecidas, basta ler a doc
@Lewis_Query
@Lewis_Query Ай бұрын
Muito bom saber que a comunidade pega inspiração de outras linguagens, no caso, C#. Melhor pra mim que as duas linguagens que eu trabalho estão ficando cada vez mais parecidas
@DiasDeDev
@DiasDeDev Ай бұрын
Sim. Muito legal ver a evolução.
@ItrioNetuno
@ItrioNetuno Ай бұрын
Seu conteúdo e sua didática são sempre incríveis! ❤
@DiasDeDev
@DiasDeDev Ай бұрын
Muito obrigado pelo apoio!
@wilsonsgomes
@wilsonsgomes Ай бұрын
Acho interessante essas novidades, mas eu, que sou das antigas, nao curti muito não rsrs Acho que utilizando os métodos tradicionais, embora escreva mais código, fica mais claro, explícito.... Nas essa é somente a minha humilde opinião, e acho bacana que a linguagem evolua, sempre!
@DiasDeDev
@DiasDeDev Ай бұрын
Eu também achei bem estranho de início. E também gosto de código mais explícito, com menos mágicas. Embora eu tenha me habituado com a sintaxe depois de tanto ler, também não sei se vou usar tanto. rsrsrs
@BrunoGasparetto
@BrunoGasparetto Ай бұрын
Conheci isso no C# e achava maravilhoso! É muito bom ver o PHP evoluindo tanto. Na lista internals vejo ótimas discussões, pena que algumas esbarram em muitos problemas técnicos pra avançar.
@DiasDeDev
@DiasDeDev Ай бұрын
Sim! C# foi uma das inspirações pra essa RFC
@octuspi8952
@octuspi8952 Ай бұрын
Acho que a maioria dos devs php ja pensou nisso e implementou de alguma forma, metodos get/set burros são a primeira coisa que um dev tenta contornar! Os frameworks ja fazer isso a um tempo através dos mutators e accessors, ver o php trazer isso nativo me deixa muito feliz!
@DiasDeDev
@DiasDeDev Ай бұрын
Exatamente!
@RodrigoVieira-vy7rn
@RodrigoVieira-vy7rn Ай бұрын
Essa problema do array poderia ser resolvido futuramente com um hook chamado "push" para ser usado somente em arrays. Acho q seria um solução.
@DiasDeDev
@DiasDeDev Ай бұрын
Existem outros hooks no escopo futuro da RFC sim. Vamos ver o que o futuro nos reserva. hehehe
@pedrolucca9596
@pedrolucca9596 Ай бұрын
Bem Interessante, eu já usei libs do spatie pra fazer esse tipo de coisa, pega o primeiro e ultimo nome e a propriedade automaticamente pega os dois e une. Muito bom!
@DiasDeDev
@DiasDeDev Ай бұрын
Sim, as libs usam os métodos mágicos. Eu costumava construir uma trait pra isso.
@sidneysouza3034
@sidneysouza3034 Ай бұрын
Acho essas paradinhas sempre maneiras, mas o que eu sinto falta no PHP de verdade é a sobrecarga de operadores que ajuda pra caramba em meta programação deixando o código muito mais intuitivo, principalmente quando deixamos de utilizar tipos escalares e queremos representar os valores de outra forma como um decimal por exemplo. Recurso esse conheci no c++ e depois vi implementado também no ruby.
@DiasDeDev
@DiasDeDev Ай бұрын
Eu já fico meio receoso de ter esse recurso justamente pelo fato de ter sido tão mal utilizado em C++ (vide std::cout
@sidneysouza3034
@sidneysouza3034 Ай бұрын
@@DiasDeDevPois então, se já tem para algumas, libera pra geral kkkkkkk. Bizarrices já são feitas com os recursos que existem hoje, então um a mais ou a menos não vai fazer diferença..
@lfelizari
@lfelizari Ай бұрын
Muito bom , demorou mas chegou.
@DiasDeDev
@DiasDeDev Ай бұрын
heheheh
@RodrigoVieira-vy7rn
@RodrigoVieira-vy7rn Ай бұрын
Pra ficar claro: definir propriedades somente com o hook get (como no exemplo do fullName), sem acessar ela própria dentro do hook com "$this->fullName", deixa a propriedade readonly e tentar definir algum valor a ela obviamente gera um erro (mesmo que a propriedade seja pública). Isso é uma forma de definir "propriedades metadados", que são basicamente propriedades geradas a partir de outras prioridades (e/ou dados externos), o que é muito legal!
@DiasDeDev
@DiasDeDev Ай бұрын
Isso aí! :-D No PHP elas serão chamadas de virtual properties (propriedades virtuais).
@LeonardoCruzCosta
@LeonardoCruzCosta Ай бұрын
Bom d+, man. Obrigado!
@DiasDeDev
@DiasDeDev Ай бұрын
Valeu! Que bom que gostou
@weydans
@weydans Ай бұрын
Bela apresentação do conteúdo. Em um primeiro momento não vi nenhuma vantagem em relação aos métodos magicos __get e __set. Já era possivel fazer coisas como: public function __get($prop) { $method = 'get' . ucfirst($prop); If (method_exists($this, $method)) { return $this->$method(); } return $this->$prop; } Vinícius o que muda na prática em relação ao exemplo acima e essa nova rfc?
@DiasDeDev
@DiasDeDev Ай бұрын
A definição de cada "get" fica mais explícita. Mas esse código aí é exatamente o que eu costumava fazer em traits quando queria essa funcionalidade de property hooks. rsrsrs Geralmente, mudanças de sintaxe não trazem funcionalidade nova. Elas trazem novas formas de fazer algo que já era possível. O mesmo serve para match expression, constructor property promotion e várias novidades maneiras que têm chegado.
@FernandoSilvaSousa
@FernandoSilvaSousa Ай бұрын
Se for suportado em interfaces e classes abstratas é útil, senão é só uma forma diferente de fazer a mesma coisa
@DiasDeDev
@DiasDeDev Ай бұрын
É suportado, como eu disse no vídeo e como dá pra ver no link. :-) Mas geralmente, novas sintaxes são exatamente isso: uma forma diferente de fazer a mesma coisa
@gessegoncalves6493
@gessegoncalves6493 Ай бұрын
carai, ainda bem que vi esse video, imagina daqui algum tempo se eu vejo um codigo deste sem saber isso , vou pensar que o código ta errado
@DiasDeDev
@DiasDeDev Ай бұрын
Heheheh
@DeviceBlack
@DeviceBlack Ай бұрын
yep
@DiasDeDev
@DiasDeDev Ай бұрын
😁
@arozendojr
@arozendojr Ай бұрын
Já usou alguma bibliotecas de php para reconhecimento de voz, pode mp3 para texto? Php websock é possível?
@DiasDeDev
@DiasDeDev Ай бұрын
Criar websockets com PHP é possível, sim. Já até tem vídeo aqui no canal. Reconhecimento de voz eu nunca pesquisei, mas imagino que exista algo sim, principalmente com FFI.
@caiosantosvargas
@caiosantosvargas Ай бұрын
Muito top
@DiasDeDev
@DiasDeDev Ай бұрын
Que bom que gostou
@marciodmc
@marciodmc Ай бұрын
Então: Tenho que atualizar um programa desenvolvido desde 2007, com registro válido no INPI. Linguagem PHP. Procuro parcerias.
@ronald9944
@ronald9944 Ай бұрын
Up
@osmaloureiro
@osmaloureiro Ай бұрын
salve carlão
@DiasDeDev
@DiasDeDev Ай бұрын
Opa!
@osmaloureiro
@osmaloureiro Ай бұрын
@@DiasDeDev vem para o japao carlao! Bora conhecer tecnologia aqui!
@DiasDeDev
@DiasDeDev Ай бұрын
Meio longe, né!? heheheh
@joonasalb
@joonasalb Ай бұрын
Sinceramente, não gostei muito dessa RFC, acho que deixa o código mais hierárquico e menos organizado
@gessegoncalves6493
@gessegoncalves6493 Ай бұрын
fica meio estranho realmente
@DiasDeDev
@DiasDeDev Ай бұрын
Eu torci o nariz nas 3 primeiras vezes que li também. Agora confesso que tô começando a me acostumar. Mas entendo perfeitamente seu ponto de vista.
@moisesferreira10
@moisesferreira10 Ай бұрын
PHP# kkkk
@Tocherman
@Tocherman Ай бұрын
é quase um construtor? funciona de maneira global?
@DiasDeDev
@DiasDeDev Ай бұрын
É igual aos métodos __get e __set. Não entendi o que você quis dizer com "global".
@Tocherman
@Tocherman Ай бұрын
@@DiasDeDev como para trafegar e definir posteriormente por exemplo
@DiasDeDev
@DiasDeDev Ай бұрын
Continuo não entendendo. Consegue colocar um exemplo?
@gabrielroque2498
@gabrielroque2498 Ай бұрын
Acho que a única mudança é que vai ter um __set e __get para cada variável de forma individual. Foi o que eu entendi de forma resumida..
@DiasDeDev
@DiasDeDev Ай бұрын
De forma bem resumida, pode ver dessa forma sim. Ainda tem as propriedades virtuais e os detalhes mais aprofundados (tipo propriedades em interfaces, etc).
@matheusrocha228
@matheusrocha228 Ай бұрын
Achei bem feito isso. Hahahaaha era melhor ter feito como tem no Java o lombok
@DiasDeDev
@DiasDeDev Ай бұрын
Lombok não é da linguagem. É um projeto externo e extremamente criticado por todas as pessoa que trabalham com Java e falam sobre boas práticas que eu conheço. rsrsrs Acho que prefiro mil vezes essa abordagem na pegada de C#, Kotlin e companhia. Lombok é exemplo a não seguir. rsrsrs
@matheusrocha228
@matheusrocha228 Ай бұрын
​@@DiasDeDev me referir as Annotation. Porq se for para pra pensar, se for pra nao declarar gatter e setter faz muito mais sentido usar Annotation da forma do lombok uai. e tipo se for pra acessar a variável, direto como atributo e nao declarar method fica estranho tbm. mas entendo seu ponto de vista.
@compilar
@compilar Ай бұрын
Ao definir SET para propriedade $foo omitindo parâmetro, creio que seria mais lógico utilizar $foo (nome da propriedade) invés de $value no exemplo que citou acima, entendo que é o padrão do PHP 8.4 ser $value mas... não me agrada.
@DiasDeDev
@DiasDeDev 29 күн бұрын
Teve essa discussão na RFC.
@LuizFernandodeAndradeAbreu
@LuizFernandodeAndradeAbreu Ай бұрын
lembrou do c#
@DiasDeDev
@DiasDeDev Ай бұрын
C# é uma das linguagens citadas na RFC sim. Foi usado como inspiração. 😁
@igorsilva736
@igorsilva736 28 күн бұрын
copiaram do Swift
@DiasDeDev
@DiasDeDev 26 күн бұрын
A RFC cita várias outras linguagens usadas como inspiração
@tdp-pop6810
@tdp-pop6810 Ай бұрын
Sintaxe horrorosa... Mancada dos desenvolvedores do PHP, que poderiam se inspirar em outras linguagens que fazem o mesmo de forma muito mais simples.
@DiasDeDev
@DiasDeDev Ай бұрын
Tá escrito na RFC todas as linguagens nas quais se inspiraram, e a sintaxe tá extremamente similar. Chegou a ler a RFC?
@RodrigoVieira-vy7rn
@RodrigoVieira-vy7rn Ай бұрын
Mais simples e natural que isso seria como?
@tiagotheoliveira
@tiagotheoliveira Ай бұрын
A parte do array parece gambiarra 😢
@DiasDeDev
@DiasDeDev Ай бұрын
Como assim? Criar um método novo é gambiarra? rsrsrs Não entendi.
@kevingood10
@kevingood10 Ай бұрын
isso tem no c# faz tempo kk
@DiasDeDev
@DiasDeDev Ай бұрын
Sim, a RFC cita C#, assim como outras linguagens.
Как подписать? 😂 #shorts
00:10
Денис Кукояка
Рет қаралды 6 МЛН
Как мы играем в игры 😂
00:20
МЯТНАЯ ФАНТА
Рет қаралды 2,1 МЛН
He bought this so I can drive too🥹😭 #tiktok #elsarca
00:22
Elsa Arca
Рет қаралды 61 МЛН
PHP Orientado a Gambiarra? Verdade ou mentira?
7:12
eduteka
Рет қаралды 602
DTO - Entendendo o que é Data Transfer Object | Dias de Dev
10:16
Para de resolver problema imaginario! (Scaling Software)
21:38
Lucas Montano
Рет қаралды 46 М.
Entrevista para Dev Senior na Europa ao vivo
45:05
Augusto Galego
Рет қаралды 121 М.
Java vs C# - Batalha de Back-End
16:35
Código Fonte TV
Рет қаралды 34 М.