Dieses Kapitel wurde für neugeborene Kälber geschrieben, die keine Angst vor Tigern haben. Sie können es nach Belieben lesen. Es basiert auf PHP Laravel
Menschen fragen oft
Das Folgende basiert auf der Zusammenfassung von Artikeln und persönlichen Entwicklungserfahrungen großer Internet-Experten 🎜>
Controller Controller ist, wie der Name schon sagt, ein Controller Die C-Schicht in MVC selbst ist die Code-Trennung. Mit der Weiterentwicklung des Unternehmens nimmt jedoch auch die Komplexität des Codes zu und die Verknüpfungen zwischen den Funktionen werden komplexer Am Ende wird Ihr MVC zu Wie in der Abbildung unten gezeigt kann das wachsende Geschäft nicht mehr unterstützt werden, wenn man sich ausschließlich auf MVC-Designideen verlässt. Jetzt definieren wir die Aufgaben und Fähigkeiten des Controllers neu. Der Controller steuert nur Http-Reqeust-Anfragen, was dem SOLID-Einzelfunktionsprinzip entspricht. Das Schreiben von Geschäftscode direkt im Controller führt dazu, dass der Code extrem aufgebläht und schwer zu warten und zu erweitern ist<?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; } }复制代码
Das habe ich gelernt, nachdem ich den Artikel von @Charlie_Jade gelesen hatteUnabhängig von jeder Operationsdatei, wie 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; } }复制代码
bedeutet öffentlich und wird häufig verwendet. In einigen Entwicklungen benötigen Sie möglicherweise einige öffentliche Methoden (nicht öffentliche Klassen, z. B. E-Mail-Versand usw., die nicht für die Verwendung geeignet sind). B. den Kontostand des Benutzers abfragen, abfragen, ob der Benutzer registriert oder online ist, eine Bestellnummer generieren usw. Die Verwendung von Common ist noch einfacher. Es sieht eher aus wie eine öffentliche Funktionsbibliothek
Sie können es verwenden, wenn Ihnen das egal ist Ausführungsergebnisse, aber auch das Listen von Ereigniswarteschlangen wird bereitgestellt.
Verwenden Sie nicht die Eingabetaste, um alle Ihre Fehlermeldungen zurückzugeben. In vielen Fällen ist Ihre Rückgabe möglicherweise nicht Ihre Rückgabe
Empfohlenes Tutorial: „
php-TutorialDas obige ist der detaillierte Inhalt vonSo schreiben Sie hochwertigen PHP-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!