Crear una aplicación Laravel

icon picker
Organización Laravel

Ahora que tenemos un Laravel nuevo y en funcionamiento, veamos qué hay dentro...

carpeta de aplicaciones

Esta carpeta contiene los elementos esenciales de la aplicación:
image.png
Consola : todos los comandos en modo consola,
Excepciones : para manejar errores de tiempo de ejecución,
Http : todo lo relacionado con la comunicación: controladores, middlewares (existen 7 middlewares básicos que se usan para filtrar solicitudes HTTP) y el kernel,
Proveedores : todos los proveedores de servicios (proveedores), ya hay 5 al principio. Los proveedores se utilizan para inicializar componentes.
Modelos : la carpeta de modelos con un regalo que preocupa a los usuarios.
Obviamente, todo esto debe parecerle bastante confuso en este momento, pero veremos estos elementos en detalle a lo largo del curso. Y también veremos que se crearán muchos otros archivos según nuestras necesidades.

Otros archivos

image.png
Aquí hay una descripción del contenido de las otras carpetas:
bootstrap : secuencias de comandos de inicio de Laravel para cargar clases automáticamente, configurar el entorno y las rutas, y para iniciar la aplicación,
public : todo lo que debe aparecer en la carpeta pública del sitio: imágenes, CSS, scripts, etc.
config : todas las configuraciones: aplicación, autenticación, caché, base de datos, espacios de nombres, correos electrónicos, sistemas de archivos, sesión...
database : migraciones y poblaciones,
resources : vistas, archivos de idioma y activos (por ejemplo, archivos Sass),
routes : gestión de URL de entrada de aplicaciones,
storage : datos temporales de la aplicación: vistas compiladas, cachés, claves de sesión, etc.
tests : archivos de prueba de unidad,
vendor: todos los componentes de Laravel y sus dependencias (creado por composer).

Archivos raíz

image.png
Hay una serie de archivos en la raíz, los principales son:
artisan : herramienta Laravel en línea para tareas de gestión,
composer.json : archivo de referencia del compositor,
package.json : archivo de referencia npm para activos,
phpunit.xml : archivo de configuración de phpunit (para pruebas unitarias),
.env : archivo para especificar el entorno de ejecución.

Accesibilidad

Por razones de seguridad en el servidor, solo la carpeta public debe ser accesible:

image.png
Esta configuración no siempre es posible en un servidor compartido, por lo que hay que modificar un poco Laravel para que funcione.

Carpetas

Public

Esta es la carpeta más importante ya que es donde se ponen todos los archivos que el cliente va a mostrar al usuario cuando introduzcamos la URL de nuestro sitio web. Normalmente se carga el archivo index.php por defecto.

Routes

Otra de las carpetas que más vamos a usar a lo largo de este curso de Laravel. En ella se albergan todas las rutas (redirecciones web) de nuestro proyecto, pero más concretamente en el archivo web.php
Dada una ruta → se cargará una vista

Resources

Esta es nuestra carpeta de recursos donde guardaremos los siguientes archivos, que también, están separados por sus carpetas... como cada nombre indica:
css Archivos CSS
js Archivos JS (JavaScript)
lang Archivos relacionados con el idioma del sitio (variables & strings)
views Archivos de nuestras vistas, lo que las rutas cargan

Entorno y mensajes de error

Por defecto, cuando instalas Laravel, está en modo de "depuración" y tendrás una descripción precisa de todos los errores. Por ejemplo, abra el archivo route/web.php y cambie el código de la siguiente manera:
Route::post('/', function () {
return view('welcome');
});
Abra la URL base, obtendrá una página de error con esta información en particular:

image.png
Durante la fase de desarrollo necesitamos recibir mensajes explícitos para rastrear los errores inevitables que vamos a cometer. En modo “producción” tendrás que cambiar este modo, para hacer esto abre el archivo config/app.php y encuentra esta línea:
'debug' => (bool) env('APP_DEBUG', false),
En otras palabras, buscamos valor en el entorno, pero ¿dónde podemos encontrarlo? Mira la raíz de las carpetas, allí encuentras el archivo .env con este contenido:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:crHCzQ5T3RTmdRg+5PuvskDcoP95iP5ZUdBrU9PIaXo=
APP_DEBUG= verdadero
APP_URL=http: // host local
LOG_CHANNEL=pila
LOG_DEPRECATIONS_CHANNEL= nulo
LOG_LEVEL=depurar
CONEXIÓN_DB=mysql
DB_HOST= 127.0 . 0.1
DB_PORT= 3306
DB_DATABASE=laravel
DB_USERNAME=raíz
DB_PASSWORD=
BROADCAST_DRIVER=registro
CACHE_DRIVER=archivo
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sincronizar
SESSION_DRIVER=archivo
SESSION_LIFETIME= 120
MEMCACHED_HOST= 127.0 . 0.1
REDIS_HOST= 127.0 . 0.1
REDIS_PASSWORD= nulo
REDIS_PORT= 6379
MAIL_MAILER=smtp
MAIL_HOST=correo electrónico
CORREO_PUERTO= 1025
MAIL_USERNAME= nulo
MAIL_PASSWORD= nulo
MAIL_ENCRYPTION= nulo
MAIL_FROM_ADDRESS= nulo
MAIL_FROM_NAME= "${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east- 1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT= falso
PULSADOR_APLICACIÓN_ID=
PUSHER_APP_KEY=
PULSADOR_APLICACIÓN_SECRETO=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY= "${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER= "${PUSHER_APP_CLUSTER}"
Observe que en este archivo la variable APP_DEBUG se establece en true . Lo mantendremos así ya que queremos estar en modo de "depuración". Por lo tanto, está en modo de depuración con visualización de mensajes de error detallados. Si lo establece en falso (o lo elimina), con una URL no deseada, ahora solo obtiene:
image.png
¡Obviamente, no debe dejar el valor verdadero al entrar en producción! Hablaremos de eso cuando veamos la gestión ambiental. Ya no te arriesgarás a olvidar cambiar este valor porque Laravel sabrá si estás en tu servidor de desarrollo o en el de producción.
Por otro lado existe un archivo que recolecta errores (Log), no existe durante la instalación pero se crea al primer error reportado. Así que vamos a crear uno. Aún en el archivo route/web.php , modifica el código de la siguiente manera:
Route::get('/', function () {
return view('welcofme');
});
Cambiamos el nombre de la vista, por lo que no existe (hablaremos de las vistas más adelante, por supuesto). Ahora se ha creado un archivo de registro aquí:
image.png
Puedes leer allí:
[ 2022 - 01 - 14 16:08:05 ] local ._ _ _ _ ERROR : Ver [ bienvenido ] no encontrado. { "excepción" : " [ objeto ] ( InvalidArgumentException ( código: 0 ) : Ver [ bienvenido ] no encontrado. en...
De forma predeterminada, solo hay un archivo, pero si prefiere tener un archivo por día, por ejemplo, simplemente agregue esta línea al archivo .env :
LOG_CHANNEL=diario
Del mismo modo, por defecto, Laravel almacena todos los errores. Esto es práctico en la fase de desarrollo, pero en producción puede limitar el nivel de gravedad de los errores retenidos (modo de depuración), por ejemplo, si está satisfecho con las advertencias:
LOG_LEVEL=advertencia
El valor APP_KEY que protege la información se genera automáticamente durante la instalación con create-project .

En resumen

Para su instalación y actualización Laravel utiliza el administrador de dependencias composer .
La creación de una aplicación Laravel se realiza desde la consola con una simple línea de comando.
Laravel está organizado en varias carpetas.
La carpeta pública es la única a la que debe tener acceso el cliente.
El entorno se establece mediante el archivo .env .
Por defecto, Laravel está en modo de "depuración" con visualización de todos los errores.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.