PHP code example of imanghafoori / laravel-responder
1. Go to this page and download the library: Download imanghafoori/laravel-responder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
imanghafoori / laravel-responder example snippets
// BAD code : Too many conditions
// BAD code : In a single method
// BAD code : (@_@) (?_?)
// (It is not that bad, since it is a simplified example)
class AuthController {
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'oManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request); // return response 2
}
// 3 - handle valid Credentials
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request); // return response 3
}
// 4 - handle invalid Credentials
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request); // return response 4
//These if blocks can not be extracted out. Can they ?
}
}
// Good code
// Good code
// Good code
class LoginController
{
public function Login(Request $request)
{
// Here we are telling what to do (not asking them)
// No response, just commands, Nice ???
$this->validateRequest(); // 1
$this->throttleAttempts(); // 2
$this->handleValidCredentials(); // 3
$this->handleInvalidCredentials(); // 4
}
// private functions may sit here
...
}
use \ImanGhafoori\Terminator\Facades\Responder;
class AuthController {
public function login(Request $request)
{
// 1 - Validate Request
$validator = Validator::make($request->all(), [
'email' => 'nse); // <-- look here
}
// 2 - throttle Attempts
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
$response = $this->sendLockoutResponse($request);
respondWith($response); // <-- look here "no return!"
}
// 3 - handle valid Credentials
if ($this->attemptLogin($request)) {
$response = $this->sendLoginResponse($request);
respondWith($response); // <-- look here "no return!"
}
// 4 - handle invalid Credentials
$this->incrementLoginAttempts($request);
$response = $this->sendFailedLoginResponse($request)
respondWith($response); // <-- look here "no return!"
}
}
class LoginController
{
public function Login(Request $request)
{
$this->validateRequest();
$this->throttleAttempts();
$this->handleValidCredentials();
$this->handleInvalidCredentials();
}
...
}
$response = response()->json($someData);
respondWith($response);
// or
respondWith()->json($someData);
// or an alias function for 'respondWith()' is 'sendAndTerminate':
sendAndTerminate($response);
// or use facade:
\ImanGhafoori\Terminator\TerminatorFacade::sendAndTerminate($response);