<?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: Marco Antonio León Matias</title>
    <description>The latest articles on DEV Community by Marco Antonio León Matias (@leonmatiasm).</description>
    <link>https://dev.to/leonmatiasm</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%2F707662%2Ff571f943-e3fd-45a1-a1fc-eb426aae62d9.jpeg</url>
      <title>DEV Community: Marco Antonio León Matias</title>
      <link>https://dev.to/leonmatiasm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leonmatiasm"/>
    <language>en</language>
    <item>
      <title>Cómo instalar WSL en Windows 10. Rápido y conciso</title>
      <dc:creator>Marco Antonio León Matias</dc:creator>
      <pubDate>Tue, 11 Jan 2022 06:38:45 +0000</pubDate>
      <link>https://dev.to/leonmatiasm/como-instalar-wsl-en-windows-10-rapido-y-conciso-366f</link>
      <guid>https://dev.to/leonmatiasm/como-instalar-wsl-en-windows-10-rapido-y-conciso-366f</guid>
      <description>&lt;p&gt;&lt;em&gt;Mi computadora es una laptop HP Envy x360 Convertible&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 1. Verifica si la virtualización está habilitada/activada.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Entra a &lt;strong&gt;«Administrador de tareas»&lt;/strong&gt;. Oprime la tecla de windows y escribe "administrador de tareas", das enter a ese programa y espera.&lt;/li&gt;
&lt;li&gt;Una vez abierto al Administrador de Tareas das click en la pestaña que dice &lt;strong&gt;«rendimiento»&lt;/strong&gt;, estando allí, posiciónate en &lt;strong&gt;CPU&lt;/strong&gt;, en la parte inferior en una lista de información buscaras donde diga &lt;strong&gt;«Virtualización: .....»&lt;/strong&gt;. Verifica que a un lado diga «Habilitado».&lt;/li&gt;
&lt;li&gt;En caso de que diga deshabilitado, revisa el Paso 3 de este escrito antes de realizar Paso 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Paso 2. Abrir Powershell como administrador
&lt;/h2&gt;

&lt;p&gt;Es importante que abras este programa como administrador pues de otra forma no te dejará instalar WSL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;En la terminal de Powershell escribe &lt;code&gt;wsl -l -o&lt;/code&gt;. Esto devolverá una lista con las distribuciones que puedes instalar.&lt;/li&gt;
&lt;li&gt;Luego, sólo instala la distribución de tu preferencia, usando el comando &lt;code&gt;wsl --install -d &amp;lt;nombre la distribución&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ejemplo: &lt;code&gt;wsl --install -d Ubuntu-20.04&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se descargará automáticamente desde Windows Store la aplicación de esa distribución. La instalación se ejecutará, puede tardar unos minutos, sólo espera.&lt;/li&gt;
&lt;li&gt;Al finalizar la instalación, cierra Powershell, luego reinicia tu computadora.&lt;/li&gt;
&lt;li&gt;Por último, inicia la aplicación de la distribución linux que se descargo, y listo, el resto depende de ti(username, password, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Paso 3. Habilitar la virtualización. Esto se hace desde la BIOS.
&lt;/h2&gt;

&lt;p&gt;La manera segura para hacer esto es con un "inicio avanzado".&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entra a &lt;strong&gt;«Configuración»&lt;/strong&gt; y da click en &lt;strong&gt;«Actualización y seguridad»&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Luego, te posicionas en &lt;strong&gt;«Recuperación»&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ahí, busca la opción de &lt;strong&gt;«Inicio avanzado»&lt;/strong&gt; y das click.&lt;/li&gt;
&lt;li&gt;Espera un momento, te aparecerán una pantalla azul con más de una opción. Tú debes elegir la que diga &lt;strong&gt;«Solucionar problemas»&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Te aparecerá otra pantallas azul con más opciones. Tú debes elegir la que diga &lt;strong&gt;«Opciones avanzadas»&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;De nuevo te saldrá una pantalla azul con más opciones. Tú debes elegir la que diga &lt;strong&gt;«Configuración de firmware UEFI»&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Confia en estos pasos ;).&lt;/li&gt;
&lt;li&gt;Llegará un momento en que te aparezca un menu y te pedirá usar teclas para acceder a cada opción. Busca en ese menu &lt;strong&gt;«BIOS Setup»&lt;/strong&gt; o algo con BIOS y accedes con su correspondiente tecla.&lt;/li&gt;
&lt;li&gt;Lee bien, pues la misma BIOS te indica las teclas para realizar cada cosa.&lt;/li&gt;
&lt;li&gt;Ya que entres a la BIOS, desplázate con las teclas que la BIOS te indica. Busca la opción de &lt;strong&gt;«Virtualización»&lt;/strong&gt; o &lt;strong&gt;«Virtualization»&lt;/strong&gt; en caso que tu BIOS esté en inglés.&lt;/li&gt;
&lt;li&gt;Das enter y cambias para &lt;strong&gt;Habilitar/activar&lt;/strong&gt; la virtualización.&lt;/li&gt;
&lt;li&gt;Por último salva y sal. Lee bien pues la misma BIOS te indica las teclas para realizar cada cosa.&lt;/li&gt;
&lt;li&gt;Se iniciará normal tu computadora y prosigues con Paso 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En realidad puedes hacer el Paso 2 y luego Paso 3. Lo que sucede es que al abrir la aplicación de la distribución linux te saldrá un error, y pues deberás hacer Paso 3.&lt;/p&gt;

&lt;p&gt;Saludos y que tengas un buen día.&lt;/p&gt;

</description>
      <category>wsl</category>
      <category>linux</category>
      <category>windows</category>
      <category>powershell</category>
    </item>
    <item>
      <title>Cómo crear cookies con PHP y comprobar si ya existen.</title>
      <dc:creator>Marco Antonio León Matias</dc:creator>
      <pubDate>Sun, 26 Sep 2021 16:28:07 +0000</pubDate>
      <link>https://dev.to/leonmatiasm/como-crear-cookies-con-php-y-comprobar-si-ya-existen-d8m</link>
      <guid>https://dev.to/leonmatiasm/como-crear-cookies-con-php-y-comprobar-si-ya-existen-d8m</guid>
      <description>&lt;h2&gt;
  
  
  ¿Qué son las cookies?
&lt;/h2&gt;

&lt;p&gt;Son contenedores de información (mucha o poca) que una página web establece en el navegador del usuario, para que después, el mismo sitio web o terceros, lean esa información y la utilicen con un fin determinado.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Funciones y variables importantes que usaremos
&lt;/h2&gt;

&lt;p&gt;En este escrito pretendo mostrar y enseñar como crear cookies y consultarlas usando PHP.  &lt;/p&gt;

&lt;p&gt;Las funciones y variables importantes que usaremos son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;setcookie()&lt;/li&gt;
&lt;li&gt;key_exists()&lt;/li&gt;
&lt;li&gt;empty()&lt;/li&gt;
&lt;li&gt;$_COOKIE&lt;/li&gt;
&lt;li&gt;$_POST&lt;/li&gt;
&lt;li&gt;$_SERVER['HTTP_HOST']&lt;/li&gt;
&lt;li&gt;header('Location: ')&lt;/li&gt;
&lt;li&gt;exit
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Crear ruta de carpetas
&lt;/h2&gt;

&lt;p&gt;No importa donde vas a crear la carpeta del proyecto. Porque usaremos el comando&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;php - S localhost:8000&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 para correr el proyecto. &lt;/p&gt;

&lt;p&gt;Llamaremos a nuestro proyecto "cookiesPHP". Entonces creamos una carpeta con el mismo nombre. Luego dentro de esa carpeta crearemos dos más. Una con el nombre de "cookies" y la otra con el nombre de "styles".  &lt;/p&gt;

&lt;p&gt;No te preocupes por el contenido de la carpeta "styles". Enseñarte CSS no es mi objetivo. Por lo tanto sólo copia y pega el código que está en la parte final de este escrito, que es lo correspondiente al contenido del archivo style.css que va dentro de la carpeta "styles". &lt;/p&gt;

&lt;p&gt;Lo verdaderamente importante está en la carpeta raíz "cookiesPHP/" y en la subcarpeta "cookies/".&lt;/p&gt;
&lt;h2&gt;
  
  
  Creando archivos en carpetas
&lt;/h2&gt;

&lt;p&gt;Dentro de la carpeta raíz del proyecto crearemos un archivo llamando "index.php". En la subcarpeta "cookies/" crearemos un archivo con el nombre "setCookie.php".&lt;/p&gt;

&lt;p&gt;Dentro de la subcarpeta "styles/" vas a crear un archivo llamado "style.css" y pondrás lo que está al final de este escrito.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cookies/:
    -cookies/
       setCookie.php
    -styles/
       style.css
    -index.php 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contenido de archivo index.php
&lt;/h2&gt;

&lt;p&gt;Creamos etiquetas comunes de html y le colocamos la etiqueta link que apuntara a nuestro archivo style.css dentro de la subcarpeta styles.&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;! DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Ventana&amp;lt;/title&amp;gt;
    &amp;lt;link rel="stylesheet" href="styles/style.css"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;header&amp;gt;
    &amp;lt;h1&amp;gt;Web Page&amp;lt;/h1&amp;gt;
&amp;lt;/header&amp;gt;
&amp;lt;section&amp;gt; 
    &amp;lt;h2&amp;gt;Other title&amp;lt;/h2&amp;gt;
&amp;lt;/section&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Hasta ahora nada nuevo. Bueno, pues procederemos a colocar código php.
&lt;/h3&gt;

&lt;p&gt;Dentro de la etiqueta body, no importa donde, siempre y cuando sea dentro de body y fuera de cualquier otra etiqueta, colocaremos lo siguiente.&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
if(!key_exists('mycookie', $_COOKIE)) {
?&amp;gt;
    &amp;lt;div class="formCookie" &amp;gt;
        &amp;lt;h2&amp;gt;We use cookies to improve our websitie&amp;lt;/h2&amp;gt;
        &amp;lt;form action="cookies/setCookie.php" method="post" &amp;gt;
            &amp;lt;input class="buttonCookieYes" name="yes" value="Yes" /&amp;gt;
            &amp;lt;input class="buttomCookieNo" name="no" value="No" /&amp;gt;
        &amp;lt;/form&amp;gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;We'll put a cookie to save your answer.&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;?php
} 
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El código anterior se leería de la siguiente manera.  &lt;/p&gt;

&lt;p&gt;Si la llave(key) "mycookie" existe en la variable $_COOKIE entonces retornará FALSE, porque hacemos la negación con "!" y por lo tanto no aparecerá nuestro div con el formulario.  &lt;/p&gt;

&lt;p&gt;Pero en caso de que la llave(key) "mycookie" no exista en la variable $_COOKIE entonces retornará TRUE, por la misma razón del operador de negación lógico "!".   &lt;/p&gt;

&lt;p&gt;Recuerda, que con ese operador devolvemos lo contrario de un tipo booleano. TRUE se vuelve FALSE, y FALSE se vuelve TRUE. La función key_exists() retorna un booleano en caso de encontrar o no la llave dentro de un array. La variable $_COOKIE es un tipo array.&lt;/p&gt;

&lt;p&gt;Si no existe la llave "mycookie" en $_COOKIE entonces mostraremos un div que contendrá un formulario. En ese formulario solo habrá dos botones(inputs tipo submit) uno con el atributo name="no" y el otro con el atributo name="yes". Una vez que se muestre, haremos que desaparezca ese formulario sólo cuando se oprima uno de los botones. &lt;/p&gt;

&lt;p&gt;Esos atributos "name" serán tratados en el archivo "setCookie.php" que esta en la carpeta "cookie/". &lt;/p&gt;

&lt;p&gt;Las clases que están colocadas son para darle estilos desde el archivo "style.css".&lt;/p&gt;

&lt;h2&gt;
  
  
  Contenido del archivo setCookie.php
&lt;/h2&gt;

&lt;p&gt;Aquí usaremos las funciones y variables siguientes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;setcookie()&lt;/li&gt;
&lt;li&gt;$_POST&lt;/li&gt;
&lt;li&gt;$_SERVER['HTTP_HOST'] &lt;/li&gt;
&lt;li&gt;header() &lt;/li&gt;
&lt;li&gt;exit. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Colocamos lo siguiente.&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
//primero obtenemos la url del sitio, en este caso será "localhost:8000" para usar esta variable en la función header() 

$uri = $_SERVER['HTTP_HOST'];

//Ahora comprobamos lo que recibimos desde el formulario. 
//Como usamos el método POST en el formulario, 
//debemos usar la variable $_POST. Y veremos si hay una llave/clave con el name="yes". 
//Por hacerlo simple, sólo comprobamos el botón "yes". En caso de que no exista esta llave en $_POST lo tomaremos como si se hubiera oprimido el botón "no". 

if(!empty($_POST['yes'])){
    $cookie = rand(1, 10000);
    $cookie .= str_shuffle('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
    $cookie .= date('d-m-Y');

    setcookie('mycookie', $cookie, time()+86400, '/', false, true);
    //regresamos al index.php o a la ruta http://localhost:8000/
    header("Location: http://$uri/" );
    exit;
}
else{
    $cookie = 0;

    setcookie('mycookie', $cookie, time()+86400, '/', false, true);

    header("Location: http://$uri/" );
    exit;
} 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El código anterior se lee de la siguiente manera.&lt;br&gt;&lt;br&gt;
Si la variable $_POST['yes'] está vacía entonces sólo coloca una cookie con el valor 0 con tiempo de vida de un día.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$cookie = 0;

    setcookie('mycookie', $cookie, time()+86400, '/', false, true);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pero si esa variable no está vacía, entonces crea una variable llamada $cookie que tendrá un numero entero aleatorio puesto con la función rand() de entre 1 a 10000. Luego a esa misma variable le agregamos un String ordenado de manera aleatoria usando la función str_shuffle(). Después le agregamos la fecha actual usando la función date('d-m-Y'). Esto realmente no es necesario para aprender como crear cookies. Pero me pareció interesante el uso de las funciones anteriores para crear una variable más compleja🤔. &lt;/p&gt;

&lt;p&gt;Simplemente podríamos omitir las tres funciones anteriores; rand();str_shuffle();date(). La variable $cookie puede contener un String con tu nombre y listo👍. &lt;/p&gt;

&lt;p&gt;La función más importante es setcookie(), esta función recibe varios argumentos. Los dos primeros argumentos son el nombre que tendrá la cookie a crear, y el segundo argumento es el valor que tendrá esa determinada cookie.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;setcookie('mycookie', $cookie, time()+84600, '/','',false, true) ;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El tercer valor es el tiempo de vida que tendrá esa cookie. La función time() retornará el timestampb tipo Unix, que estará en segundos. Entonces nosotros con el operador "+" le sumamos 84600 segundos a ese valor dado por time(). 84600 segundos es un día. Por lo tanto nuestra cookie dudará un día.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;setcookie('mycookie', $cookie, time()+84600, '/', false, true) ;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El cuarto argumento es la ruta donde se guardará la cookie. En este caso usamos la raíz "/". El quinto valor es el dominio del sitio web, en esta ocasión lo dejamos vacío.&lt;br&gt;
Los dos últimos argumentos son para determinar seguridad https, y httponly. En se orden. &lt;/p&gt;

&lt;p&gt;Siguiendo con el código. Una vez puesta la cookie en la ruta "/", con nombre "mycookie", con valor de un String compuesto dentro de la variable $cookie, y con un tiempo de vida de un día, regresaremos a la ruta http: //localhost:8000/ con la función header() y terminamos el script del archivo setCookie.php con la función exit.&lt;/p&gt;

&lt;p&gt;La variable $uri la declaramos al inicio del archivo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;header("Location: http://$uri/" );
    exit;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  El formulario para aceptar cookies desaparece.
&lt;/h2&gt;

&lt;p&gt;Esto ya está resuelto. Porque desde que creamos la estructura condicional "if" en el archivo index.php ya preguntamos que hacer en caso de tener o no una llave determinada dentro de la variable tipo Array $_COOKIE.&lt;/p&gt;

&lt;p&gt;Por lo tanto no importa si elegimos aceptar o no la cookie. Una vez dada nuestra repuesta ya no debería aparecer ese formulario. Solo hasta que la cookie expire.&lt;/p&gt;

&lt;p&gt;Trata de que tus cookies duren más tiempo, de esta manera evitas que al usuario le aparezca ese formulario a veces molesto para algunos.&lt;/p&gt;

&lt;h2&gt;
  
  
  El usuario debe decidir entre aceptar las cookies o no.
&lt;/h2&gt;

&lt;p&gt;Si tú no le das la oportunidad de negarse a aceptar una o muchas cookies, entonces estarías obligando al usuario a aceptar algo que el tal vez no quiere o no está de acuerdo.&lt;/p&gt;

&lt;p&gt;Si tú creas cookies sin preguntarle al usuario, esas cookies se actualizarán automáticamente una vez el tiempo de vida de cada cookie termine, siempre y cuando el usuario vuelve al sitio web.&lt;/p&gt;

&lt;p&gt;En ese sentido, haces que el usuario acepte algo de lo cual el desconoce su contenido y su fin.&lt;/p&gt;

&lt;p&gt;Puedes guardar una cookie  para salvar su respuesta en caso de negativa. Debes decirle que harás esta acción. &lt;/p&gt;

&lt;h2&gt;
  
  
  Contenido de style.css
&lt;/h2&gt;

&lt;p&gt;Hice lo que pude en el tema del diseño. Puedes cambiar todo el archivo y las clases en el index.php.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
header, section{
    padding: 10px 8px;
    margin-bottom: 1em;
}
.formCookies{
    border-top: solid rgb(15, 15, 15);
    width: 100%;
    text-align: center;
    position: fixed;
    bottom: 0px;
    background-color: rgb(255, 248, 153);        
    font-family: Verdana, Geneva, Tahoma, sans-serif;
}
.formCookies form{
    margin: 1em 0;
}
.buttonCookieYES{
    font-size: 1.2em;
    color: white;
    border: none;
    border-radius: 10px;
    background-color: rgb(43, 64, 250);
    padding: .4em .8em;
}
.buttonCookieYES:hover{
    color: white;
    background-color: rgb(78, 95, 252);
}
.buttonCookieYES:active{
    color: rgb(43, 64, 250);
    background-color: rgb(255, 255, 255);
}
.buttonCookieNO{
    font-size: 1.2em;
    border: none;
    border-radius: 10%;
    text-decoration: underline;
    background-color: rgb(255, 248, 153); 
    padding: .4em .8em;
}
.buttonCookieNO:hover{
    color: red;
}
.buttonCookieNO:active{
    color: white;
    background-color:red; 
}
h1,h2,h3,h4{
    margin-bottom: .5em;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>php</category>
      <category>cookies</category>
      <category>learn</category>
    </item>
    <item>
      <title>Los comandos php artisan más usados, por mí.</title>
      <dc:creator>Marco Antonio León Matias</dc:creator>
      <pubDate>Fri, 17 Sep 2021 02:55:56 +0000</pubDate>
      <link>https://dev.to/leonmatiasm/los-comandos-php-artisan-mas-usados-por-mi-415p</link>
      <guid>https://dev.to/leonmatiasm/los-comandos-php-artisan-mas-usados-por-mi-415p</guid>
      <description>&lt;h2&gt;
  
  
  🔶 ¿Qué es php artisan?
&lt;/h2&gt;

&lt;p&gt;Es la interfaz de línea de comandos que viene junto a Laravel. Nos ayuda a administrar el proyecto de manera rápida y eficiente.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔶 Los comandos que más utilizo son estos:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;php artisan serve&lt;/li&gt;
&lt;li&gt;php artisan make:model [nombre_de_Modelo_en_Singular] -a &lt;/li&gt;
&lt;li&gt;php artisan make:controller [nombre_de_Controller] --model=[Modelo_que_se_conectara_con_el_controller]&lt;/li&gt;
&lt;li&gt;php artisan migrate&lt;/li&gt;
&lt;li&gt;php artisan migrate:fresh --seed&lt;/li&gt;
&lt;li&gt;php artisan make:request [nombre]&lt;/li&gt;
&lt;li&gt;php artisan make:resource [nombre_EstoCreara_7_rutasBasicasCRUD]&lt;/li&gt;
&lt;li&gt;php artisan route:list&lt;/li&gt;
&lt;li&gt;php artisan make:component [nombre].&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔶 php artisan serve
&lt;/h2&gt;

&lt;p&gt;Yo utilizo XAMPP para probar mis proyectos en local. Por lo tanto el servidor inicia en la carpeta C:xampp\htdocs. En el navegador debes escribir algo como http ://localhost/proyectoUno. Lo que para mi es tedioso, y en caso de no colocar el nombre después de localhost/ te redireccionará al dashboard de xampp. Pero se complica más en caso de que uses Laravel, pues debes colocar algo como http ://localhost/proyectoUno/public.&lt;/p&gt;

&lt;p&gt;Para mejorar esa experiencia yo utilizo desde la terminal de comandos y desde la carpeta de mi proyecto&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto iniciara el servidor local en http ://localhost:80. Parece poca la diferencia, pero es super practico.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ojo. En el panel de XAMPP debes tener iniciado MySQL en caso de que trabajes con DB. Usar artisan serve no complicará su uso.  &lt;/p&gt;
&lt;/blockquote&gt;



&lt;h2&gt;
  
  
  🔶 php artisan make:model [nombre_de_Modelo_en_Singular] -a
&lt;/h2&gt;

&lt;p&gt;Este comando me ayuda a crear varias cosas a la vez. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modelo dentro de app\Models.&lt;/li&gt;
&lt;li&gt;Controller dentro de app\Http\Controllers, más su respectivo recurso(7 rutas) para realizar un CRUD.&lt;/li&gt;
&lt;li&gt;Migrate dentro de database/migrations, es el archivo para definir nuestras tablas, y porteriormente subirlas a la DB con php artisan migrate.&lt;/li&gt;
&lt;li&gt;Seeder dentro de database/seeders, para definir que datos/factories subir a la base de datos. &lt;/li&gt;
&lt;li&gt;Factory dentro de database/factories, para definir con que llenar la tabla correspondiente con datos de prueba. Uso Faker para esa tarea.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Este comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan make:model &lt;span class="o"&gt;[&lt;/span&gt;nombre_de_Modelo_en_Singular] &lt;span class="nt"&gt;-a&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;es mi mejor amigo 😎.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔶 php artisan make:controller [nombre_de_Controller] --model=[Modelo_que_se_conectara_con_el_controller]
&lt;/h2&gt;

&lt;p&gt;Aquí crearemos un controlador en app\Http\Controllers que se vinculara a un modelo especifico de la carpeta app\Models. No es muy complicado. Podemos hacerlo a mano. Pero es más rápido con artisan.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan make:controller &lt;span class="o"&gt;[&lt;/span&gt;nombre_de_Controller] &lt;span class="nt"&gt;--model&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;Modelo_que_se_conectara_con_el_controller]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En caso que el modelo no exista, artisan te preguntará si quieres crearlo.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔶 php artisan migrate
&lt;/h2&gt;

&lt;p&gt;Con este, subirás todas tus migraciones que están en database/migrations. Así crearas las tablas con sus respectivas columnas y tipos de datos a tu DB(Ej. MySQL).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  🔶 php artisan migrate:fresh --seed
&lt;/h2&gt;

&lt;p&gt;Este es bonito. En caso de que hayas subido tus tablas(migraciones) a la DB, pero se te olvido llenarlas con datos de prueba los cuales definiste en sus factories, con este comando borrarás tus tablas y las volverás a subir pero con datos.🤓&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ojo. Yo utilizo el archivo DatabaseSeede.php que esta dentro de database/seeders. En la función run() invoco los factories.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan migrate:fresh &lt;span class="nt"&gt;--seed&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  🔶 php artisan make:request [nombre]
&lt;/h2&gt;

&lt;p&gt;Este nos ayuda a crear un archivo para validar los requests. Lo considero útil en caso de que no quieras validar los request dentro de tu controller. Es bueno aislar cierto códgo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan make:request &lt;span class="o"&gt;[&lt;/span&gt;nombre]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  🔶 php artisan make:resource [nombreRequest]
&lt;/h2&gt;

&lt;p&gt;Muchas veces los sistemas tienen la misma base, Crear, Leer, Actualizar y Borrar. Este comando nos permite crear 7 rutas ya configuradas para realizar un CRUD. En realidad funciona si en tu archivo web.php que esta dentro de routes/ defines algo como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Route::resource&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/ruta'&lt;/span&gt;, &lt;span class="se"&gt;\A&lt;/span&gt;pp&lt;span class="se"&gt;\H&lt;/span&gt;ttp&lt;span class="se"&gt;\C&lt;/span&gt;ontrollers&lt;span class="se"&gt;\r&lt;/span&gt;utaController::class&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Despues de tener esa línea de código, puedes ejecutar&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan make:resource &lt;span class="o"&gt;[&lt;/span&gt;nombreRequest]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Ojo. Esto no creara el controller. Solo las rutas para ser usadas en tu controller. Las rutas están conectadas con las funciones(7) de tu controller.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;h2&gt;
  
  
  🔶 php artisan route:list
&lt;/h2&gt;

&lt;p&gt;Facil. En caso de que no sepas cuantas rutas tiene tu proyecto, este comando te dirá exactamente cuantas y cuales son.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan route:list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;h2&gt;
  
  
  🔶 php artisan make:component [nombre]
&lt;/h2&gt;

&lt;p&gt;El sistema de plantillas de Blade que viene con Laravel es muy poderoso. Usar componentes nos ayudará a crear código más fácil de mantener y de leer, aunque no lo parezca a veces. &lt;/p&gt;

&lt;p&gt;De hecho cada componente puede funcionar con sus propias consultas a base de datos o lógica de programación. Cuando creas un component  en tu proyecto aparecerán dos carpetas importantes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;app\View\Components\nombreComponent.php aquí podrás desarrollar la lógica para ese único componente.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;resources\views\components\nameComponent aquí crearas la vista y el diseño que como presentaras los datos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hay mucho que puedes aprender sobre los componentes Blade de Laravel. Son increíbles.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan make:component &lt;span class="o"&gt;[&lt;/span&gt;nombre]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🔴 Gracias por leer.
&lt;/h2&gt;

&lt;p&gt;Sígueme en twitter &lt;a href="https://twitter.com/leonmatiasm"&gt;@leonmatiasm&lt;/a&gt;, si gustas claro. 🐧&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>artisan</category>
      <category>cli</category>
      <category>php</category>
    </item>
  </channel>
</rss>
