Création de méthodes chaîne, tout Vous devez savoir sur les modèles de conception d'interface fluide comme développeur de PHP Laravel.

DEV - 03/07
Avez-vous déjà émerveillé l'élégance et la puissance des méthodes enchaînées dans le cadre de Laravel? Do...

Avez-vous déjà émerveillé l'élégance et la puissance des méthodes enchaînées dans le cadre de Laravel? Vous vous demandez comment l'esprit brillant de Taylor Otwell a apporté ce modèle de conception intuitive et efficace à l'applicabilité dans votre cadre PHP préféré? Que vous soyez un développeur débutant cherchant des réponses, ou un développeur avancé demandant des explications, vous êtes au bon endroit!

Dans cet article de blog complet, nous décrypterons les concepts du modèle de design fluide et explorerons comment il vous permet d'écrire un code propre, lisible et hautement expressif en PHP, Laravel et au-delà. Nous plongerons profondément dans le concept, démystifierons ses travaux intérieurs et vous équiperons des outils pour exploiter son plein potentiel.

Introduction

Fluent Interface Design Pattern est un modèle populaire dans une programmation orientée objet qui permet aux développeurs de créer un code plus lisible et expressif. Ce modèle est utilisé pour simplifier l'utilisation des API en permettant la chaîne de méthode et en créant une interface plus naturelle. Le modèle de conception d'interface Fluent offre une manière concise et expressive de configurer des objets et de leur invoquer des méthodes.

Exemple rapide de modèle de conception d'interface fluide en PHP

Voici un exemple de comment vous pouvez utiliser le modèle de conception d'interface Fluent en PHP pour créer un simple constructeur de requêtes:

class QueryBuilder { protected $table; protected $columns = array(); protected $where = array(); public function table($table) { $this-table = $table; return $this; } public function select($columns) { $this-columns = is_array($columns) ? $columns : func_get_args(); return $this; } public function where($column, $operator, $value) { $this-where[] = compact('column', 'operator', 'value'); return $this; } public function build() { $columns = implode(', ', $this-columns); $where = ''; if (!empty($this-where)) { $where = ' WHERE '; foreach ($this-where as $clause) { $where .= "{$clause['column']} {$clause['operator']} '{$clause['value']}' AND "; } $where = rtrim($where, ' AND '); } return "SELECT {$columns} FROM {$this-table}{$where}"; } }
Saisissez le mode plein écran

Cette classe fournit une API fluide pour construire des requêtes SQL. Vous pouvez l'utiliser comme ceci:

$query = (new QueryBuilder()) -table('users') -select('name', 'email') -where('age', '', 18) -where('country', '=', 'USA') -build(); echo $query;
Saisissez le mode plein écran

Ceci va produire la requête SQL suivante:

SELECT name, email FROM users WHERE age '18' AND country...
[Courte citation de 8% de l'article original]
Loading...