Ricerca…
Cambia directory delle app predefinite
Ci sono casi d'uso quando potresti voler rinominare la tua directory app in qualcos'altro. In Laravel4 puoi semplicemente modificare una voce di configurazione, ecco un modo per farlo in Laravel5.
In questo esempio, rinomineremo la directory app
in src
.
Sostituisci la classe dell'applicazione
L' app
name name è hardcoded nella classe Application principale, quindi deve essere sovrascritta. Crea un nuovo file Application.php
. Preferisco mantenere il mio nella directory src
(quella che sostituiremo con l'app), ma puoi posizionarlo altrove.
Ecco come dovrebbe apparire la classe sostituita. Se vuoi un nome diverso, cambia la stringa src
in qualcos'altro.
namespace App;
class Application extends \Illuminate\Foundation\Application
{
/**
* @inheritdoc
*/
public function path($path = '')
{
return $this->basePath . DIRECTORY_SEPARATOR . 'src' . ($path ? DIRECTORY_SEPARATOR . $path : $path);
}
}
Salva il file. Abbiamo finito con questo.
Chiamando la nuova classe
Apri il bootstrap/app.php
e individua
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
Lo sostituiremo con questo
$app = new App\Application(
realpath(__DIR__.'/../')
);
Compositore
Apri il tuo file composer.json
e cambia autoloading in modo che corrisponda alla tua nuova posizione
"psr-4": {
"App\\": "src/"
}
E infine, nella riga di comando esegui composer dump-autoload
e la tua app dovrebbe essere pubblicata dalla directory src
.
Cambia la directory Controller
se vogliamo cambiare la directory Controllers
abbiamo bisogno di:
- Sposta e / o rinomina la directory
Controllers
predefinita dove vogliamo. Ad esempio daapp/Http/Controllers
aapp/Controllers
- Aggiorna tutti gli spazi dei nomi dei file all'interno della cartella
Controllers
, facendo aderire al nuovo percorso, rispettando lo specifico PSR-4.
- Cambia lo spazio dei nomi che viene applicato al file
routes.php
, modificandoapp\Providers\RouteServiceProvider.php
e modifica questo:
protected $namespace = 'App\Http\Controllers';
a questo:
protected $namespace = 'App\Controllers';