Create an account or log in

Keep learning for free! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

1 Días
9 Hrs
29 Min
50 Seg

Estructura de carpetas

3/14
Resources

How to structure a Laravel-like project from scratch?

Creating a well-organized folder structure is crucial when developing applications with frameworks like Laravel. In addition to improving workflow, it ensures that the code is easy to maintain and understand. Here's how to create an initial structure for your project, inspired by Laravel.

Which folders are essential?

  1. App folder: This is the backbone of the project. This folder will handle the main functionalities of your application.

    • HTTP subfolder: It manages the requests and responses. Here you will find:
      • The controllers that process user requests.
      • The request and response classes.
      • A helpers file with functions that will facilitate the development.
  2. Public folder: Contains the main access point to your application through the index.php file.

  3. Vendor folder: Used for Composer's autoloading system, managed with the PSR-4 standard.

  4. Folder views: Place for the views of your application. Here will live the templates like the home view.

How do we configure Composer for autoload?

Composer's autoload magic simplifies class loading, allowing a more efficient workflow. Here's how to configure Composer autoload for your project.

  1. Initialize Composer:

    composer init

    Accept the default settings, such as project name and author.

  2. Configure the autoload:

    • Add to the composer.json file the settings for PSR-4:
      "autoload": { " psr-4": { " App": "app/" }}
    • Register your helpers file which does not yet exist, but will be created later:
      "files": ["app/helpers.php"].
  3. Execute to apply the changes:

    composer dump-autoload

How do we organize the subfolders inside app?

  1. Create the subfolders inside HTTP:

    • Controllers: Here will go the controllers responsible for user actions.
    • Requests and Responses: Defines how to handle system requests and responses.
  2. Creates and organizes the views:

    Houses views and templates inside the views folder to specify how information will be displayed to the user.

  3. Public folder:

    Here lives the index.php file, which will serve as the entry point for the application, handling initial requests.

In short, this basic structure will not only help you organize your projects, but will prepare you to understand and handle more complex frameworks in the future. Explore the potential of this framework and enter the world of development with a clear and efficient approach.

Contributions 33

Questions 9

Sort by:

Want to see more contributions, questions and answers from the community?

Yo cuando no usaba frameworks, tenía mi propio código base para el sistema de cargas, conrtoladores, etc. Peor siempre me comía la duda, ¿Cómo evito que entren a mi carpeta app? Porque si alguien ponía en la URL /app podía entrar a mi carpeta.

La respuesta me llegó al usar Laravel, la carpeta public, al poner en index.php en una subcarpeta, entonces mis otras carpetas no eran accesibles y se me abrio un mundo de posibilidades jaja

Claro, luego está la reescritura de URL’s mediante htaccess xD

Sería genial también un curso de Laravel con este magnífico profesor.

que bueno haber seguido el curso de composer antes de tomar este.

<h3>Estructura de Carpetas</h3>
  1. Iniciamos el proyecto sabemos que podemos utilizar composer y su sistema de autoload así que lo integramos usando el comando composer init para crear la configuración de archivo composer.json a través de contestar unas sencillas preguntas.


  2. Configuración del autoload y files como configuración final del archivo composer.json.


  3. Una vez terminado esto ejecuto el comando Composer dump.

    Composer dump: Crea de manera automática la configuración de autocarga establecida en el archivo de composer.json. Con esta operación se crea la carpeta vendor y dentro de ella el archivo autoload.php.

Listo tenemos la autocarga lista.

💡¿Qué es la opción require y porque se encuentra vacías?

Esta opción se crea en base al comando composer require y sirve para agregar paquetes adicionales que usaremos en nuestro proyecto, al no instalar paquetes al iniciar es por ende que se encuentra vacío.

  1. Crear la estructura de carpetas necesarias para el proyecto.

Voy con todo a aprender Laravel!

Estructura

si laravel es el mejor framework ya llevo 5 años en laravel, aprendi laravel cuando estaba en la version 5.1, hoy en dia es mucho mas poderoso y organizado, de igual forma aprender los fundamentos de php entendi muchas cosas tambien.

Llevo muchos años con mala practica de programacion php y este curso de framework siento que me va ayudar muchisimo. ya con solo ver esto de las estructuras de carpetas me ha encantado

La estructura de carpetas que vamos a desarrollar es:

        |-- app
        |   |-- Http
        |   |   |-- Controllers
        |   |   |   |-- ContactController.php
        |   |   |   `-- HomeController.php
        |   |   |-- Request.php
        |   |   `-- Response.php
        |   `-- helpers.php
        |-- composer.json
        |-- public
        |   `-- index.php
        |-- vendor
        |   |-- autoload.php
        |   `-- composer
        |       |-- ClassLoader.php
        |       |-- LICENSE
        |       |-- autoload_classmap.php
        |       |-- autoload_files.php
        |       |-- autoload_namespaces.php
        |       |-- autoload_psr4.php
        |       |-- autoload_real.php
        |       `-- autoload_static.php
        `-- views
            |-- contact.php
            |-- home.php
            `-- layout.php

En caso tal, si necesitan más detalles al momento de buscar cómo se llama el tema de estructurado de repositorios, esto se puede llamar ‘scaffolding’. La idea es que esta distribución estandarizada de repositorios nos ayude a agilizar el desarrollo y organización de nuestros archivos de código fuente, estilos, scripts, etc.

parecido al create-react-app de react en algunos aspectos

Estructura de carpetas

1.- Inicia con la configuración de Composer

Mediante el uso de composer init desde la terminal configura los parametros de autocarga encontrados en la sección “autoload” del archivo composer.json

{
    "name": "sergioluis/curso-introduccion-a-frameworks",
    "description": "Proyecto basico",
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/helpers.php"
        ]
    },
    "authors": [
        {
            "name": "Sergioluis",
            "email": "[email protected]"
        }
    ],
    "require": {}
}

Una vez comfigurado ejecuta por terminal:

composer dump

2.- Crea las carpetas y archivos base

En la carpeta principal añade las carpetas:

.
├── app  (Aplicación)
│   ├── helpers.php (Funciones sencillas)
│   └── Http (Manejo de solicitudes, procesamiento y respuesta)
│       ├── Controllers (Controladores)
│       ├── Requests.php (Manejo de solicitudes)
│       └── Response.php (Manejo de respuestas)
├── composer.json (Archivo de conf. inicial de composer)
├── public
│   └── index.php (Punto de acceso)
├── src
├── vendor (Carpeta creada por composer)
│   ├── autoload.php
│   └── composer
│       ├── autoload_classmap.php
│       ├── utoload_files.php
│       ├── autoload_namespaces.php
│       ├── autoload_psr4.php
│       ├── autoload_real.php
│       ├── autoload_static.php
│       ├── ClassLoader.php
│       └── LICENSE
└── views (Vistas)

Estructura de carpetas

Gracias a los PSRs podemos escribir código PHP que cumpla con estos estándares. Y el PSR-4 es uno de ellos, en donde nos indica la forma en la que debemos configurar nuestra autocarga de clases.

Aquí les dejo el enlace:

https://www.php-fig.org/psr/psr-4/

Estoy muy impresionado con el funcionamiento de composer, es sin lugar a dudas una gran ayuda

Esta muy interesante este curso porque nos permite comprender mas como funciona un framework y como se conectan sus estructuras.

Excelente, muchas veces me preguntaba sobre los framework, y como se estructuraban. Esta clase me ayuda a entender por que el nombre de cada cosa.

Adjunto la estructura de carpetas en mi WSL :

josedario@DESKTOP-6AELDF7:/var/www/html/introframework$ ls -al
total 0
drwxrwxr-x 1 www-data josedario 4096 Jun  3 22:29 .
drwxr-xr-x 1 www-data www-data  4096 Jun  3 20:17 ..
drwxrwxr-x 1 www-data www-data 4096 Jun  3 22:31 app
-rw-rw-r-- 1 www-data www-data  335 Jun  3 22:22 composer.json
drwxrwxr-x 1 www-data www-data 4096 Jun  3 22:29 public
drwxrwxr-x 1 www-data www-data 4096 Jun  3 22:21 vendor
drwxrwxr-x 1 www-data www-data 4096 Jun  3 22:27 views

Excelente para ver la estructura de las carpetas

Ojo el nombre que le dieron en name, no debe llevar numero numeros o puntos

cuando ejecute composer dump me aparecio así, sucede que respondí de otra forma a las preguntas.

Excelente

Buena clase

Mi terminal aparece así y al ejecutar el comando marca un error, ¿alguien podría ayudarme? 😦


Luego, cuando se conoce a profundidad la estructura básica de un framework genérico, usar la herramiento de “yeoman” para montar el scaffold de carpetas, pues es una ayuda. Todo sea dicho de paso.

Composer es un sistema que nos ayuda a cargar todo de manera automatica y no estar mandandolo a llamar parte por parte…

Una estrctura normal en los frameworks es tener una carpeta llamada
App–
–http
–controller Aqui es donde menejaremos las peticiones

helpers.php   		documento para crear funciones que ayuden nuestro sistenas, 				 de ahi parte su nombre

Public la que contiene lo que se va a mostrar

Proyecto creado

Comenzando con una explicación sencilla.
Gracias profesor 😉

Genial clase

Buena explicación