AÑADIR MIS CLASES A UN PROYECTO LARAVEL

En Laravel 5, todo el contenido de la carpeta app se carga de forma automática usando PSR-4.

Esto lo podemos ver en el archivo composer.json :

“psr-4”: { 
         “App\\”: “app/”
}

Esto significa que podemos crear nuestras clases dentro de app, y éstas serán reconocidas inmediatamente (incluso si no se trata de un modelo, controlador, middleware, evento, etcétera).

Por ejemplo, puedo crear un archivo en la siguiente dirección:

app/Custom/MyClass.php

Sólo debo asegurarme de usar el namespace adecuado dentro de MyClass.php:

<?php namespace App\Custom;

class MyClass 
{
    /* métodos y/o atributos */
}

Y eso es todo. Ahora puedo usar esta clase desde cualquier contexto. Por ejemplo, si lo quiero usar desde un controlador, entonces en la parte superior añadiría:

use App\Custom\MyClass;

A tener en cuenta:

  • Hay muchas formas de organizar nuestro código.
  • Distintas estructuras de carpetas que podemos seguir.
  • Laravel es flexible en ese sentido, y podemos organizarnos como mejor nos parezca.                          

Referencia:

https://programacionymas.com/blog/agregar-clases-propias-laravel

Creando carpetas al mismo nivel que app

Por cierto: no estamos limitados a la carpeta app.

Es decir, podemos tener muchas carpetas aquí, en distintos niveles. Pero si de pronto nuestra aplicación crece mucho y queremos organizar todo en base a módulos (u otro enfoque), podemos crear carpetas al mismo nivel que la carpeta app.

Para ello hemos de aplicar PSR-4 a estas nuevas carpetas. Por ejemplo:

"psr-4": {
    "App\\": "app/",
    "Blog\\": "blog/",
    "Dashboard\\": "dashboard/"
}

Y así dentro de blog y dashboard podríamos tener carpetas para nuestros modelos, servicios, interfaces, etcétera.

En este último caso, será necesario ejecutar composer dump-autoload.

Ejemplo breve

  1. He creado una carpeta tawa en el directorio raíz de mi proyecto (nombre de la aplicación que estoy desarrollando, únicamente a modo de ejemplo; podría     ser el nombre de un módulo).
Carpeta creada en la raíz del proyecto

2. Agregué una carpeta Services en su interior, y a su vez un archivo CvHandler.php al interior de esta carpeta.

3. Modifiqué el archivo composer.json:

"psr-4": {
    "App\\": "app/",
    "Tawa\\": "tawa/"
}

4. Definí la clase CvHandler del siguiente modo:

<?php namespace Tawa\Services;

class CvHandler
{
    public function sayHello()
    {
        return 'hi';
    }
}

5.Ejecuté composer dump-autoload.

6. Finalmente ingresé a la consola interactiva Tinker (ejecutando php artisan tinker), para verificar que funcione la nueva clase.

Este paso 5 demuestra que lo que hicimos es factible, y nuestras clases estarán disponibles en nuestro proyecto siempre que usemos el namespace adecuado.

CLONAR UN PROYECTO LARAVEL CON GIT

Primer paso clonar el repositorio:

 git clone https://gitbub.com/usuario/nombre-proyecto 

Segundo paso instalar las dependencias con composer

	composer install

Tercer paso crear el archivo .env

	copy Nul .env

Cuarto paso copiar el contenido del archivo .env.example a nuestro archivo .env y modificar los datos necesarios.

Quinto paso Generar una clave única para nuestro proyecto

		php artisan key:generate

si miramos nuestro archivo .env veremos que ya tiene la clave generada en el.

Archivo .env modificado con la clave generada

CLONAR UN PROYECTO LARAVEL CON GIT
Recursos: https://parzibyte.me/blog/2017/05/29/hacer-despues-clonar-proyecto-laravel/