Buscar..


Cambiar el directorio predeterminado de la aplicación

Hay casos de uso en los que es posible que desee cambiar el nombre del directorio de su aplicación a otra cosa. En Laravel4 solo puedes cambiar una entrada de configuración, aquí hay una forma de hacerlo en Laravel5.

En este ejemplo, cambiaremos el nombre del directorio de la app a src .

Anular clase de aplicación

La app nombres de directorios está codificada en la clase de aplicación principal, por lo que debe anularse. Crear un nuevo archivo Application.php . Prefiero mantener el mío en el directorio src (con el que reemplazaremos la aplicación), pero puedes ubicarlo en otro lugar.

Así es como debería verse la clase anulada. Si quieres un nombre diferente, simplemente cambiar la cadena src a otra cosa.

namespace App;

class Application extends \Illuminate\Foundation\Application
{
    /**
     * @inheritdoc
     */
    public function path($path = '')
    {
        return $this->basePath . DIRECTORY_SEPARATOR . 'src' . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}

Guarda el archivo. Hemos terminado con eso.

Llamando a la nueva clase

Abre bootstrap/app.php y localiza

$app = new Illuminate\Foundation\Application(
    realpath(__DIR__.'/../')
);

Lo reemplazaremos con esto.

$app = new App\Application(
    realpath(__DIR__.'/../')
);

Compositor

Abra su archivo composer.json y cambie la carga automática para que coincida con su nueva ubicación

"psr-4": {
    "App\\": "src/"
}

Y, finalmente, en la línea de comandos, ejecute composer dump-autoload y su aplicación debe ser servida desde el directorio src .

Cambiar el directorio de controladores

Si queremos cambiar el directorio de Controllers , necesitamos:

  1. Mueva y / o cambie el nombre del directorio de Controllers predeterminado donde lo queramos. Por ejemplo, desde app/Http/Controllers a app/Controllers
  1. Actualice todos los espacios de nombres de los archivos dentro de la carpeta Controllers , haciendo que se adhieran a la nueva ruta, respetando el PSR-4 específico.
  1. Cambie el espacio de nombres que se aplica al archivo routes.php , editando app\Providers\RouteServiceProvider.php y cambie esto:
protected $namespace = 'App\Http\Controllers';

a esto:

protected $namespace = 'App\Controllers';


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow