Papuchon, alta posta y preciosa funcionalidad extra le agregaron a PHP, como medio mundo deberiamos contemplar como migrar versiones proyectos php viejos a versiones mas nuevas, pero detras de eso soy feliz de esta buenísima noticia
@Alpha_Dev no me refería a las que has puesto en el video, me refiero al resto, ya que cuando paso de la 7.4 a la 8, muchas funcionalidades dejaron de ser retrocompatibles y hubo que tocar bastante código para actualizarlo
Gracias por la sugerencia, si es una gran herramienta, la he usado, y estoy planeando un proximo video sobre esta para mostrar su uso para incentivar la actualizacion.
Esta buenisimo eso de los getters y setters, ayuda a mantener clases mas limpias, pero no me convence que una sola linea; en este caso una declaración de variable haga varias cosas, siento que rompe con SRP y genera más dependencia de esa linea, pero tambien siento que me agrega más extensión a futuro. Es una nueva funcionalidad a analizar bien antes de usar creo. Que opinan? Saludos.
Entiendo tu punto, si ya la logica de tu setter o getter crece mucho se puede volver menos legible, y ahi ya es una medida que cada uno tendra que ver y decidir si lo tiene que extraer en otra clase o funcion para acomodar a sus estandares. Eso siempre fue una de las cosas de php muchas de sus cosas utilizadas de manera excesivas pueden llevar a un desorden muy facilmente y esta en el desarrollador en matener el orden.
5:00 ¿por qué lo de set no devuelve ": self" ni ejecuta "return $this;" como en el setName del anterior código de 3:51 ? Era útil para encadenarse llamadas como var_dump('Mr.' . ($a->name='alpha')->name);
La diferencia ahi es que no deja de ser una asignacion, la cual nativamente devuelve el valor que fue asignado mientras que al usar un metodo si tenes control del valor devuelto. Se puede considerar una desventaja, y va a ser a considerar quien lo prefiere de una manera u otra.
@@Alpha_Dev Mire lo ideal de mi truco como $abuelo=($persona->nombre='Fulano'->gender='male'->age=70); [ según el orden de precedencia de los operadores = y -> se ponen unos paréntesis o no ]. Al finalizarse, ya tendré todos los datos de la $persona, y el $abuelo será esta $persona. :)
Entiendo que seria util, digo que no es posible. Cuando definis el set no podes indicar que devuelve. Da error dado que esta definido que el return es void. Como funciona php luego de una asignacion digamos que haces `var_dump($persona->nombre = "fulano")` el valor devuelto es "fulano". Incluso que tu hook tenga algo que lo modifique no lo vas a ver dado que devuelve en valor de la derecha de la asignacion.
@@Alpha_Dev Si el set no devuelve otro tipo nada más que el void en vez del self entonces se tendría varias líneas de código equivalente como éste: $persona = new Persona(); $persona->nombre = 'Fulano'; $persona->género = 'hombre'; $persona->edad = 70; $abuelo = $persona;
El problema histórico de los setters y getters es éste: mucho código espagueti, muchos métodos, texto repetitivo (boilerplate) con más probabilidad de equivocarse, más tiempo de escritura, más grandes sus clases de bytecodes, más grandes sus APIs, más ralentización por lo pesado que es, etc. El tamaño del proyecto se habría multiplicado por 2 o 3 por el uso de los setters y getters. Recientes PHP y Groovy son más versátiles que estos modificadores/especificadores de acceso ya muy primitivos.
Coincido, como mencione se terminaban agregando solamente por el hecho que asi era mejor por si en algun momento lo necesitas. Desconosco de Groovy, pero muy bueno verlo tambien en otros lenguajes
Gran lenguaje Go, quien lo considere como primer lenguaje va a poder sacarle mucho provecho, sea con el lenguaje que sea lo bueno es convertirse en desarrollador y despues los lenguajes son herramientas que uno sabe usar o que simplemente puede aprender.
Entiendo el sentimiento me pasa mirando videos, es muy distinto al hacerlo que verlo y aprecio el feedback. Espero que mirarlo en x 1.5 o 2 te ayude o sino bueno quizas otro video sea mas a tu estilo. De nuevo gracias y saludos.
Se entiende que quieran ser modernos, ponerse a la par de los lenguajes de hoy, pero querer mantener una cierta retrocompatibilidad por que la web en gran parte está construida en PHP se está conviertiendo en un dolor de cabeza. Amo PHP pero a veces aburre tanto cambio.
Creo que lo estan haciendo bien dado que si queres cambiar y dejar en sin funcionar todo lo anterior es muy problematico. Digamos que sacas una nueva version de PHP y saca todo lo anterior te llevaria a que ningun plugin funcionaria deberian ser re-escritos y dificiles de mantener para multiples versiones y eso pasando cada vez. Por eso hacerlo paulatinamente, no lo toque en el video pero lo que deprecan va a avisar que va a dejar de funcionar y versiones posteriores van a terminar sacandolo. Quizas no es lo mas exitante siempre pero el lenguaje tiene que mantener la confianza, sino un caso de investigacion es el cambio entre angular (ahora angular js) hacia angular 2, donde dejaron sin funcionar ni camino para migrar mas que re-escribir todo y perdieron mucha confianza
PHP tiene una gran flexibilidad para trabajar con servidores.
Papuchon, alta posta y preciosa funcionalidad extra le agregaron a PHP, como medio mundo deberiamos contemplar como migrar versiones proyectos php viejos a versiones mas nuevas, pero detras de eso soy feliz de esta buenísima noticia
Muchisimas gracias, es buenisimo ver el lenguaje que me gusta seguir progresando.
Interesante, aguante PHP 🫶🏼
Exelentes funcionalidades.
Hola, muy bueno el cambio, reduce bastante el código. Lo que si espero que sea lo más retrocompstible con el resto de funcionalidades
Son funcionalidades nuevas, agregan, no reemplazan, como mencione quien no quiera usarla que no las use.
@Alpha_Dev no me refería a las que has puesto en el video, me refiero al resto, ya que cuando paso de la 7.4 a la 8, muchas funcionalidades dejaron de ser retrocompatibles y hubo que tocar bastante código para actualizarlo
aaa, si con el resto cuanto mas tiempo mas dificil, pero hay herramientas para hacerlo mas facil.
buenisimo doc
Nunca a muerto
Me encantó. Si la verdad me encantaría actualizar de la versión 7.3 a esa incluso 8.3 sería un gran gold o meta 😢
Bueno de a poco y que los proximos que hagas que puedan ser en versiones nuevas.
está buenisimo tu neovim, tienes videos para configurarlo?
Tengo la lista de "mastering neovim" donde muestro como usar y configurar neovim desde cero.
Para los que buscan actualizar sus proyectos hay herramientas como Rector que automatizan bastante el trabajo.
Gracias por la sugerencia, si es una gran herramienta, la he usado, y estoy planeando un proximo video sobre esta para mostrar su uso para incentivar la actualizacion.
Esta buenisimo eso de los getters y setters, ayuda a mantener clases mas limpias, pero no me convence que una sola linea; en este caso una declaración de variable haga varias cosas, siento que rompe con SRP y genera más dependencia de esa linea, pero tambien siento que me agrega más extensión a futuro. Es una nueva funcionalidad a analizar bien antes de usar creo.
Que opinan? Saludos.
Entiendo tu punto, si ya la logica de tu setter o getter crece mucho se puede volver menos legible, y ahi ya es una medida que cada uno tendra que ver y decidir si lo tiene que extraer en otra clase o funcion para acomodar a sus estandares.
Eso siempre fue una de las cosas de php muchas de sus cosas utilizadas de manera excesivas pueden llevar a un desorden muy facilmente y esta en el desarrollador en matener el orden.
Ah Wao, me hizo recuerdo a c#
Si, c# lo tiene hace tiempo
Hola tienes tienes cursos de actualizacion de PHP y framworks?
No, lamentablemente no tengo exactamente sobre eso, pero si tengo planeado un proximo video sobre una herramienta como facilitar las actualizaciones.
Hola. Algún framework de php similar a FastAPPI de Pthon?
Laravel te puede servir
tambien revisaria API Platform, lo tengo en mi radar, probablemente lo explore en el proximo directo el martes.
5:00 ¿por qué lo de set no devuelve ": self" ni ejecuta "return $this;" como en el setName del anterior código de 3:51 ? Era útil para encadenarse llamadas como var_dump('Mr.' . ($a->name='alpha')->name);
La diferencia ahi es que no deja de ser una asignacion, la cual nativamente devuelve el valor que fue asignado mientras que al usar un metodo si tenes control del valor devuelto.
Se puede considerar una desventaja, y va a ser a considerar quien lo prefiere de una manera u otra.
@@Alpha_Dev Mire lo ideal de mi truco como $abuelo=($persona->nombre='Fulano'->gender='male'->age=70); [ según el orden de precedencia de los operadores = y -> se ponen unos paréntesis o no ]. Al finalizarse, ya tendré todos los datos de la $persona, y el $abuelo será esta $persona. :)
Entiendo que seria util, digo que no es posible. Cuando definis el set no podes indicar que devuelve. Da error dado que esta definido que el return es void.
Como funciona php luego de una asignacion digamos que haces `var_dump($persona->nombre = "fulano")` el valor devuelto es "fulano". Incluso que tu hook tenga algo que lo modifique no lo vas a ver dado que devuelve en valor de la derecha de la asignacion.
@@Alpha_Dev Si el set no devuelve otro tipo nada más que el void en vez del self entonces se tendría varias líneas de código equivalente como éste:
$persona = new Persona();
$persona->nombre = 'Fulano';
$persona->género = 'hombre';
$persona->edad = 70;
$abuelo = $persona;
En laravel se hace algo muy parecido en los modelos :Attribute 🧐
Logran un efecto similar, laravel lo logra utilizando los metodos magicos __set y __get que tienen su desventaja y puede ser mas engorroso.
@ gracias entiendo
Hola Alpha, para cuando el curso de php?
Muy Pronto.
php es como Bob Patiño cuando crees que está muerto, vuelve por su venganza...
jajaj referencia de los simpsons completamente aprobada.
Hermano buenisimo estoy en la version 8.3.4 cuadno salga la 4 es que voy a actualizar y tratar de usar lo nuevo
Buenisimo. Genial que estas en la version actual, mas facil todavia actualizar.
El problema histórico de los setters y getters es éste: mucho código espagueti, muchos métodos, texto repetitivo (boilerplate) con más probabilidad de equivocarse, más tiempo de escritura, más grandes sus clases de bytecodes, más grandes sus APIs, más ralentización por lo pesado que es, etc.
El tamaño del proyecto se habría multiplicado por 2 o 3 por el uso de los setters y getters.
Recientes PHP y Groovy son más versátiles que estos modificadores/especificadores de acceso ya muy primitivos.
Coincido, como mencione se terminaban agregando solamente por el hecho que asi era mejor por si en algun momento lo necesitas.
Desconosco de Groovy, pero muy bueno verlo tambien en otros lenguajes
cool si ya estas encharcado con php, muy poco para considerarlo "buena opcion" o primer lenguaje, mejor ve a go.
Gran lenguaje Go, quien lo considere como primer lenguaje va a poder sacarle mucho provecho, sea con el lenguaje que sea lo bueno es convertirse en desarrollador y despues los lenguajes son herramientas que uno sabe usar o que simplemente puede aprender.
Personalmente me dolió más la migración de 5.6 a 7.4 que de 7.4 a 8 (entendiendo migración por funciono y no rompo), así que anímense
varia mucho de proyecto a projecto, pero igual muy recomendable hacerlo.
Igual a Javascript con los prototypes que puedes cambiar el comportamiento del get y set desde la variables, genial
Estoy aprendiendo PHP y JavaScript ¿Alguien con quien pueda trabajar, ganar algo de dinero y seguir aprendiendo?
Está agonizando
Se ve aburrida la sintaxis de php. El signo $ se pone solo?
Siento que has contado muy poco en mucho tiempo.
Entiendo el sentimiento me pasa mirando videos, es muy distinto al hacerlo que verlo y aprecio el feedback. Espero que mirarlo en x 1.5 o 2 te ayude o sino bueno quizas otro video sea mas a tu estilo. De nuevo gracias y saludos.
Se entiende que quieran ser modernos, ponerse a la par de los lenguajes de hoy, pero querer mantener una cierta retrocompatibilidad por que la web en gran parte está construida en PHP se está conviertiendo en un dolor de cabeza. Amo PHP pero a veces aburre tanto cambio.
Creo que lo estan haciendo bien dado que si queres cambiar y dejar en sin funcionar todo lo anterior es muy problematico.
Digamos que sacas una nueva version de PHP y saca todo lo anterior te llevaria a que ningun plugin funcionaria deberian ser re-escritos y dificiles de mantener para multiples versiones y eso pasando cada vez.
Por eso hacerlo paulatinamente, no lo toque en el video pero lo que deprecan va a avisar que va a dejar de funcionar y versiones posteriores van a terminar sacandolo.
Quizas no es lo mas exitante siempre pero el lenguaje tiene que mantener la confianza, sino un caso de investigacion es el cambio entre angular (ahora angular js) hacia angular 2, donde dejaron sin funcionar ni camino para migrar mas que re-escribir todo y perdieron mucha confianza