この記事では、「悪い」PHP コードを記述する方法を詳しく紹介します。 !一定の参考値があるので、困っている友達が参考になれば幸いです。
生まれたばかりの子牛でトラを怖がらない子供たちに向けて書かれたものなので、自由に読むことができます。 この章は PHP Laravel に基づいています
よく質問されます
私は「悪い」プロジェクトについても書いています。以下は、記事の要約と主要なインターネット専門家の個人的な開発経験に基づいています。
<?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; } }R の問題を解決した後、CUD は比較的統一されていてシンプルなので、まとめることはできるのかと誰かが尋ねました。答えは「いいえ」です。新しい名詞「アクション」を引用します。
CreateUser などの各操作ファイルから独立しています,DeleteUser,UpdateUser
#SOLID の 1 つの原則に準拠
#UserController
<?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; } }
実行結果を気にしない場合は、これを使用することもできますが、Event の Listen にはキューも用意されています。
すべてのエラー メッセージを返すために Return を使用しないでください。多くの場合、戻り値が戻り値ではない可能性があります。
推奨される学習: 「PHP」ビデオチュートリアル>>
以上がPHP Laravel に基づいて、「悪い」PHP コードを少なく書く方法について話しましょう。 !の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。