Es recomendable utilizar docker para implementar y configurar el entorno de desarrollo para laravel
-
Descargar el instalador de la página oficial for developers
-
Al terminar con la instalación reiniciar el equipo y aceptar los términos de docker.
-
Al aparecer el siguiente mensaje, evitar cerrarlo y abrir un powershell para ejecutar lo siguiente:
wsl --set-default-version 2
Para desplegar las distribuciones linux que se pueden instalar
wsl --list --online
Instalar con el siguiente comando, sustituir por la distribución deseada
wsl --install -d <distribucion>
-
Durante la instalacion se abrirá una ventana para colocar el usuario y contraseña del sistema linux.
-
Una vez finalizado reiniciar la computadora.
- Abrir Powershell y ejecutar el comando
wsl
IMPORTANTE Siempre que desde powershell se utilice el comando wsl al terminar de trabajar colocar un wsl --shutdown para que no siga consumiento ram
-
La subterminal que se abre es linux, se dirige a la ruta para empezar los proyectos. Por ejemplo, cd desktopp
-
Una vez en la ruta siempre que se desea crear un proyecto se coloca en la terminal:
curl -s https://laravel.build/example-app | bash
-
Durante la instalación se pide la contraseña linux para finalizar la creación del proyecto.
-
Desde wsl en powershell acceder a la ruta raiz del proyecto
-
Ejecutar
./vendor/bin/sail up
Lo anterior ejecuta todos los servicios de laravel en docker
-
Desde docker se verá el contenedor destinado a los componentes necesarios para laravel
-
Desde los componentes podemos visualizar los puertos que estan siendo usados para los servicios:
-
Desde el navegador accedemos en este caso a
localhost:80
- Ejecutar
./vendor/bin/sail down
desde la raiz del proyecto en un powershell
Alternativa:
Para evitar poner comandos tan largos se puede asignar un alias a la ruta vendor desde wsl:
sudo nano ~/.bashrc
-
Ir hasta la parte inferior con las flechas y dar enter, colocar lo siguiente:
alias sail="./vendor/bin/sail"
-
ctrl+o ctrl+m ctrl+x
-
Refrescar los cambios con:
source ~/.bashrc
-
Para verificar que funcionó ejecutar:
alias
-
Para ejecutar o detener ahora solo sería
sail up
osail down
desde la raíz del proyecto.
-
Visualizar informacion de php creando un archivo index.php
<?php phpinfo();
-
Ejecutarlo a traves de una terminal en la ruta correspondiente con el comando:
php -S localhost:3000
-
Acceder al localhost y visualizar la informacion de php:
-
Ir a la ruta de instalacion de PHP y abrir el archivo php.ini.
El archivo puede ser reemplazado por el de produccion o desarrollo segun sea el caso, se crea una copia y renombra, al final la configuracion cargada es la que se encuentre en el php.ini
- Las extensiones dentro del archivo se encuentran marcadas como ;extension. Descomentar quitando el punto y coma a las siguientes:
- Reiniciar el servidor
- Descargar el instalador Aquí>>>
- La ruta de instalación debe apuntar al php.exe de la versión que se usa.
- Desde powershell debe detectar el comando composer
- Node y npm
- TablePlus
- MySQL
Desde powershell en la ruta deseada ejecutar
composer create-project laravel/laravel myapp
La desventaja de crear un proyecto con solo composer es que no todos los servicios estarán directamente instalados como lo sería usar laravel en docker.
Desde table plus se crea una conexión a MySQL y posteriormente se crea una base de datos:
Posteriormente para enlazar la base de datos se debe editar el archivo .env con los datos correspondientes de la bdd:
- En la ruta del proyecto ejecutar en una terminal:
php artisan serve
- Acceder al localhost segun indica la terminal
php artisan migrate
php artisan migrate:rollback
Laravel utiliza docker en las versiones mas recientes. Sail es un CLI para comunicar, interactuar con archivos de docker, arrancar servicios, llamar artisan o instalar dependencias de npm.
Con docker un ejemplo sería: sail php -v y en caso de usar solo composer php -v
Directorios más comunes en el desarrollo.
- App. Http/controllers
- App. Models
- database
- public. Imagenes, Hojas de estilo y js una vez que son compilados.
- resources. Css y js nativos de laravel y despues se le agregan los que hay en public al compilar.
- resources / views. MVC
- routes. Enrutamiento, api, etc.
- storage. Archivos se suben al servidor.
- vendor. Las dependencias de composer y modulos agregados se añaden a esta carpeta.
- .env - Configuraciones de la base de datos y sus conexiones entre otras configuraciones del environment.