Maison >développement back-end >tutoriel php >Laravel: Est-ce vraiment propre et chic?
Fait des suraltes de clé
La page d'accueil de Laravel possède un framework "propre et chic", libérant les développeurs du code alambiqué. Tessons cela en construisant une simple application TODO.
Migrations de base de données
Tout d'abord, nous définissons le schéma de base de données. Une seule table avec cinq colonnes (id, titre, description, créé_at, updated_at) suffit. Les migrations de Laravel simplifient les mises à jour de la base de données. Le fichier de migration ressemble à ceci:
<code class="language-php"><?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateTodoTable extends Migration { public function up() { Schema::create('todos', function (Blueprint $table) { $table->increments('id'); $table->string('title', 20); $table->text('description'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('todos'); } }</code>
up()
exécute la migration, et down()
l'inverse.
Le modèle
L'architecture MVC de Laravel nécessite un modèle pour l'interaction de la base de données. Notre table simple a besoin d'un modèle simple:
<code class="language-php"><?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Todo extends Model { protected $fillable = ['title', 'description']; public $timestamps = true; }</code>
Laravel relie automatiquement Todo
au tableau todos
. Eloquent, l'ORM de Laravel, facilite la manipulation des objets de la base de données. $timestamps = true
met à jour automatiquement created_at
et updated_at
.
le contrôleur
Le contrôleur abrite la logique d'application:
Le contrôleur avec cinq actions (méthodes):
<code class="language-php"><?php namespace App\Http\Controllers; use App\Models\Todo; use Illuminate\Http\Request; class TodoController extends Controller { public function list() { $todos = Todo::all(); return view('list', compact('todos')); } public function view($id) { $todo = Todo::find($id); return view('view', compact('todo')); } public function delete($id) { $todo = Todo::find($id); $todo->delete(); return view('deleted'); } public function new() { return view('add'); } public function add(Request $request) { $validatedData = $request->validate([ 'title' => 'required|max:20', 'description' => 'required', ]); Todo::create($validatedData); return view('success'); } }</code>
Le code est clair. Eloquent simplifie l'accès à la base de données (Todo::all()
). action_add()
utilise la validation de la demande.
La vue (exemple: liste)
Le moteur de modèles de lame de Laravel crée des vues propres. La vue list
:
<code class="language-blade"><h2>Todo List</h2> <p>{{ link_to_route('todo.new', 'Add new todo') }}</p> <ul> @foreach ($todos as $todo) <li>{{ link_to_route('todo.view', $todo->title, [$todo->id]) }} - {{ link_to_route('todo.delete', 'Delete', [$todo->id]) }}</li> @endforeach </ul></code>
Conclusion
La construction de cette application simple démontre la facilité d'utilisation de Laravel et la lisibilité du code. Le cadre est à la hauteur de sa revendication "propre et chic".
(Remarque: Les extraits de code fournis sont des exemples simplifiés et peuvent nécessiter des ajustements pour une application entièrement fonctionnelle. La gestion des erreurs et des fonctionnalités plus robustes seraient nécessaires dans un environnement de production.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!