<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: David Israel Raygoza Ramirez</title>
    <description>The latest articles on DEV Community by David Israel Raygoza Ramirez (@davidraygoza).</description>
    <link>https://dev.to/davidraygoza</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F723660%2F1137caff-b49d-4a7f-a23e-bce51feb3439.jpeg</url>
      <title>DEV Community: David Israel Raygoza Ramirez</title>
      <link>https://dev.to/davidraygoza</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/davidraygoza"/>
    <language>en</language>
    <item>
      <title>Nuevas características en PHP 8</title>
      <dc:creator>David Israel Raygoza Ramirez</dc:creator>
      <pubDate>Mon, 10 Oct 2022 23:18:48 +0000</pubDate>
      <link>https://dev.to/davidraygoza/nuevas-caracteristicas-en-php8-1pem</link>
      <guid>https://dev.to/davidraygoza/nuevas-caracteristicas-en-php8-1pem</guid>
      <description>&lt;p&gt;Dentro de las nuevos aspectos de PHP 8, revisaremos 2 que parecen muy interesantes para implementar e investigar a profundidad, veamos los siguientes que nos permiten observar la diferencia de código de acuerdo a cada versión.&lt;/p&gt;

&lt;h2&gt;
  
  
  Named Arguments
&lt;/h2&gt;

&lt;p&gt;Una de las características interesantes dentro de versión de PHP8 que llama mucha la atención son los &lt;em&gt;"Named arguments"&lt;/em&gt;, ya era posible utilizarlos en otros lenguajes, en este momento ya esta disponible para su uso. &lt;br&gt;
&lt;em&gt;&lt;strong&gt;PHP 7&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Este sería nuestro ejemplo más básico de cómo enviar parámetros por posición.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php
 function make_drink($type = "cappuccino",$cup=2)
{
    return "$cup cup(s) of $type.\n";
}
echo  make_drink();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://phpsandbox.io/e/x/rkpou?layout=EditorPreview&amp;amp;defaultPath=%2F&amp;amp;theme=dark&amp;amp;showExplorer=no&amp;amp;openedFiles="&gt;Example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;PHP 8&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
En PHP8 es posible enviar los parámetros combinando los tipos ya sea por posición y por nombre a continuación podemos ver la declaración de una función y las diferentes formas como se podría invocar esa función.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; function make_drink($type = "cappuccino",$cup=2)
{
    return "$cup cup(s) of $type.\n";
}
echo  make_drink(cup:3, type:'tee');
echo make_drink(type:'chocolate');
echo make_drink('milk',cup:5);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://phpsandbox.io/n/hko7e"&gt;Example&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Null safe operator
&lt;/h2&gt;

&lt;p&gt;El &lt;em&gt;&lt;strong&gt;NULL&lt;/strong&gt; safe operator&lt;/em&gt; es un forma de verificar si la propiedad es existente en el objeto de manera que la validación queda más limpia y legible.&lt;/p&gt;

&lt;p&gt;La versión previa a PHP 8 de validación para evitar errores en nuestro código es la siguiente:&lt;br&gt;
&lt;strong&gt;PHP 7&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$order = null;
$order-&amp;gt;invoice-&amp;gt;number ?? null)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;PHP 8&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$order = null;
$order?-&amp;gt;invoice?-&amp;gt;number
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A simple vista no se aprecia el poder del operador, a continuación podemos ver otro ejemplo donde se aprecia que limpió y legible queda el código&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PHP 7&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$country =  null;

if ($session !== null) {
    $user = $session-&amp;gt;user;

    if ($user !== null) {
        $salary = $user-&amp;gt;getSalary();

        if ($address !== null) {
            $mount = $salary-&amp;gt;mount;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;PHP 8&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$country = $session?-&amp;gt;user?-&amp;gt;getAddress()?-&amp;gt;country;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cómo se puede apreciar en este ejemplo, la nueva característica de PHP 8 es una característica genial para nuestro código.&lt;/p&gt;

&lt;p&gt;Si tienes alguna observación para mejorar el artículo o tienes ganas de comentarlo, no dudes en contactarme. &lt;/p&gt;

&lt;p&gt;Mientras tanto felices lineas...&lt;/p&gt;

</description>
      <category>php8</category>
      <category>namedarguments</category>
      <category>nullsafe</category>
      <category>php</category>
    </item>
    <item>
      <title>¿Iniciar a estudiar PHP ?</title>
      <dc:creator>David Israel Raygoza Ramirez</dc:creator>
      <pubDate>Wed, 04 May 2022 16:32:41 +0000</pubDate>
      <link>https://dev.to/davidraygoza/iniciar-a-estudiar-php--3afd</link>
      <guid>https://dev.to/davidraygoza/iniciar-a-estudiar-php--3afd</guid>
      <description>&lt;p&gt;Creo que cada año esta es la pregunta, que varias personas se hacen. ¿Es buena decisión aprender PHP? ¿Por dónde comenzar?. &lt;/p&gt;

&lt;p&gt;El mercado solicita mas personas que sepan &lt;strong&gt;PHP&lt;/strong&gt; para dar mantenimiento a sistemas ya implementado o para implementar nuevas características. Esa demanda de personal ha provocado una mejora en lo sueldos ofrecidos.&lt;/p&gt;

&lt;p&gt;En este post voy a comentar algunos aspectos que considero importantes al iniciar a estudiar PHP. Por lo que es un buen incentivo para dominarlo.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Es fácil?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fod7k4tyr8d5oo54wysay.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fod7k4tyr8d5oo54wysay.gif" alt="Yes image" width="480" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php
echo "Hello stranger!!!";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La respuesta corta es &lt;strong&gt;SI&lt;/strong&gt;. Es muy fácil de leer los primeros scripts y en eso radica una de sus debilidades, esta característica puede propiciar que los aprendices de &lt;strong&gt;PHP&lt;/strong&gt; caigan en malas prácticas. Para eso es importante seguir una buena ruta de aprendizaje y utilización de herramientas en el desarrollo de los proyectos.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Por dónde empezar?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dmplJxC---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media3.giphy.com/media/13GIgrGdslD9oQ/giphy.gif%3Fcid%3Decf05e47w6znp9jl2vmmrqqr5itt2qpew1mvvr2urb3r41nr%26rid%3Dgiphy.gif%26ct%3Dg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dmplJxC---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media3.giphy.com/media/13GIgrGdslD9oQ/giphy.gif%3Fcid%3Decf05e47w6znp9jl2vmmrqqr5itt2qpew1mvvr2urb3r41nr%26rid%3Dgiphy.gif%26ct%3Dg" alt="Yes image" width="500" height="300"&gt;&lt;/a&gt;&lt;br&gt;
Después de saber tipos de datos, estructuras de control y ciclos, es importante saber como se aplica la teoría de objetos y los principales patrones de diseño en &lt;strong&gt;PHP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A continuación listo material para iniciar el estudio de &lt;strong&gt;PHP&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.php.net/"&gt;php.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://refactoring.guru/es/design-patterns/abstract-factory/php/example#example-0"&gt;refactoring.guru&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/php/"&gt;w3schools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://exercism.org/tracks/php/exercises/"&gt;exercism.org&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  ¿Ya estoy preparado?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o5B69TQ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media0.giphy.com/media/l1J9IRv0ob603JJHq/giphy.gif%3Fcid%3Decf05e47sr79cw8cvxd1k4a2wipkxdznbosasw71bar2094w%26rid%3Dgiphy.gif%26ct%3Dg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o5B69TQ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media0.giphy.com/media/l1J9IRv0ob603JJHq/giphy.gif%3Fcid%3Decf05e47sr79cw8cvxd1k4a2wipkxdznbosasw71bar2094w%26rid%3Dgiphy.gif%26ct%3Dg" alt="Calm down" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tranquilo!!!. Aprendiendo de estos temas tal vez estes por encima del promedio de los programadores PHP, sin embargo es necesario trabajar con entornos bien documentados y con recursos que resuelven necesidades repetitivas de los diferentes sistemas en su desarrollo.&lt;/p&gt;

&lt;p&gt;Respondiendo a esas necesidades hay comunidades que han propuesto trabajar con un conjunto de librerías que han evolucionado en &lt;strong&gt;Frameworks&lt;/strong&gt;, estos han ayudado a hacer el desarrollado más ágil ya que han heredado prácticas exitosas, como pueden ser las migraciones de base de datos, separar la presentación del procesamiento de datos, así como el procesamiento de los diferentes motores de datos. &lt;/p&gt;

&lt;p&gt;Lo importante a la hora de decidir qué framework utilizar es importante considerar el tamaño de la comunidad que lo utiliza, frecuencia de actualización  y lo adecuado para el tamaño de la aplicación a desarrollar. &lt;/p&gt;

&lt;p&gt;Los siguientes frameworks son de los más utilizados y demandados por el mercado:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffyq9bzue1r04ss1zaih3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffyq9bzue1r04ss1zaih3.png" alt="PHP Frameworks" width="680" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://laravel.com/"&gt; Laravel&lt;/a&gt;: De lo más utilizados y maduros en el mercado.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;: De lo más maduros y que han seguido en el gusto de empresas y desarrolladores&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://phalcon.io/"&gt;Phalcon&lt;/a&gt;: Muy rápido en su desempeño sin embargo no ha tomado cuota importante del mercado.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://codeigniter.com/"&gt;CodeIgniter&lt;/a&gt;: De los primeros framweworks populares por su simplicidad, perdió cuota de mercado por un periodo por falta de mantenimiento.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.yiiframework.com/"&gt;Yii&lt;/a&gt;: Framework interesante ya que cuenta con herramientas utilizables desde la consola.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://framework.zend.com/"&gt;Zend&lt;/a&gt;: Robusto y completo, con importante curva de aprendizaje, muy utilizado en aplicaciones empresariales.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Con este material puedes empezar de una manera más organizada  tus pasos como desarrollador &lt;strong&gt;PHP&lt;/strong&gt; y evitar las malas practicas que la industria señalaba en los desarrollo hechos con este lenguaje.&lt;/p&gt;

&lt;p&gt;Si eres alguien que desea emprender un camino como desarrollador web, tienes que tener presente que es solo un inicio, siempre tienes que estar en la disposición de aprender, y aunque suene a consejo de abuelito &lt;strong&gt;no ólvides el inglés&lt;/strong&gt; este es un requisito importante en el actual mercado.&lt;/p&gt;

&lt;p&gt;Si tienes dudas de este post, o consideras que algún material puede ayudar a la comunidad puedes contactarme en los siguiente medios: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/davidraygoza/"&gt;Linkedin: davidraygoza&lt;/a&gt;&lt;br&gt;
&lt;a href="//david.raygoza.ramirez@gmail.com"&gt;david.raygoza.ramirez@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>php</category>
      <category>laravel</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
