Écrit pour ces veaux nouveau-nés qui n'ont pas peur des tigres, vous pouvez le lire à volonté. Ce chapitre est basé sur PHP Laravel
.
Les gens demandent souvent
J'écris également sur les "mauvais" projets. Ce qui suit est basé sur le résumé d'articles et l'expérience de développement personnel de grands experts d'Internet. 🎜>
Controller Controller, comme son nom l'indique, est un contrôleur Lorsque vous débutez avec PHP, vous savez que Controller représente. la couche C dans MVC. Le concept de MVC lui-même est la séparation du code, qui vous apprend à séparer les entreprises. Cependant, à mesure que l'entreprise continue de se développer, la complexité du code augmente également et les liens entre les fonctions sont complexes. À la fin, votre MVC devient Comme le montre l'image ci-dessous, s'appuyer uniquement sur les idées de conception MVC ne peut plus soutenir la croissance de l'entreprise. Nous redéfinissons désormais les tâches et les capacités du contrôleur. Le contrôleur contrôle uniquement les requêtes Http Reqeust, ce qui est conforme au principe de fonction unique SOLID. Écrire du code métier directement dans le contrôleur rendra le code extrêmement volumineux et difficile à maintenir et à développer<?php namespace App\Http\Controller; class UserController extends Controller{ public function register(Request $request){ $user = new User(); $user->username = $request->input('username'); $user->password = $request->input('password'); $result = $user->save(); return $result; } }复制代码
<?php namespace App\Http\Controller; class UserController extends Controller{ public $request; protected $userService; public function __construct(Request $request, UserService $userService) { $this->request = $request; $this->userService = $userService; } public function register() { //... validation return $this->userService->register ($this->request->all()); } }复制代码
<?php namespace App\Service; class UserService{ public function register($data) { $username = $data['username']; $password = $data['password']; $password = encrypt ($password); $user = new User(); $user->username = $username; $user->password = $password; $result = $user->save(); return $result; } }复制代码
<?php namespace App\Http\Controller; class UserController extends Controller{ public $request; protected $userService; public function __construct(Request $request, UserService $userService) { $this->request = $request; $this->userService = $userService; } public function getUserInfo() { //... validation return $this->userService->getUserInfo ($this->request->all()); } }复制代码
<?php namespace App\Service; class UserService{ public $userRepository; public function __construct(UserRepository $userRepository){ $this->userRepository = $userRepository; } public function getUserInfo() { return $this->userRepository->getUserInfo($data); } }复制代码
<?php namespace App\Repository; class UserRepository{ public function getUserInfo($data) { $userId = $data['user_id']; $result = User::where('id',$userId)->first(); return $result; } }复制代码
J'ai appris cela après avoir lu l'article de @Charlie_JadeIndépendant de chaque fichier d'opération, tel que CreateUser, DeleteUser, UpdateUser
<?php namespace App\Http\Controller; class UserController extends Controller{ public $request; protected $userService; public function __construct(Request $request, UserService $userService) { $this->request = $request; $this->userService = $userService; } public function register(){ //... validation return $this->userService->register($this->request->all()); } public function getUserInfo() { return $this->userService->getUserInfo ($this->request->all()); } }复制代码
<?php namespace App\Service; class UserService{ public function getUserInfo(UserRepository $userRepository) { return $this->userRepository->getUserInfo($data); } public function register(){ $result = (new CreateUser())->execute($this->request->all()); return $result; } }复制代码
<?php namespace App\Repository; class UserRepository{ public function getUserInfo($data) { $userId = $data['user_id']; $result = User::where('id',$userId)->first(); return $result; } }复制代码
<?php namespace App\Action; use App\Model\Member; class CreateUser extends CreateUserWallet { public function execute(array $data) { $models = new Member(); $models->tel = $data['tel']; $models->password = $data['password']; $result = $models->save (); return $result; } }复制代码
est traduit par public, couramment utilisé dans certains développements, vous pouvez avoir besoin de certaines méthodes publiques (classes non publiques, telles que l'envoi d'e-mails, etc., qui ne conviennent pas à l'utilisation), tels que demander le solde de l'utilisateur, demander si l'utilisateur est enregistré ou en ligne, générer un numéro de commande, etc. Utiliser Common est encore plus simple. Cela ressemble plus à une bibliothèque de fonctions publiques
Vous pouvez choisir de l'utiliser lorsque vous ne vous souciez pas du les résultats d'exécution, mais l'écoute des files d'attente d'événements sont également fournies.
N'utilisez pas Return pour renvoyer tous vos messages d'erreur. Dans de nombreux cas, votre retour peut ne pas être votre retour
. Merci à tous Après avoir lu cet article, si vous avez de nouvelles idées, n'hésitez pas à en discuter dans la zone de commentaires
Tutoriel recommandé : "tutoriel php"
.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!