Skip to content

dconco/phpslides-status

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTTP PhpSlides-Status

Installation

After creating your PhpSlides project, navigate to the project directory and install PhpSlides-Status package using this command below:

composer require dconco/phpslides-status

Or download the zip file directly from the released version, ectract the file and add it to a folder 📂 in your PhpSlides project.

Download phpslides-status zip

Documentation

Using Status() class function

Create a Status instance for API response. Which is used in PhpSlides API Controller Class

<?php

namespace PhpSlides\Controller\Api;

use PhpSlides\Controller\Controller;
use PhpSlides\Status;

final class UserController extends Controller
{
   public function __invoke() {
      $status = new Status();
   }
}

?>

You can pass a string value to the Status() function parameter which is by default Response::JSON using the Response namespace PhpSlides\Http\Response

In returning value in JSON format. The parameter includes this enum value type:

use PhpSlides\Http\Response;

Response::JSON;
Response::HTML;
Response::CSV;
Response::XML;

new Status(Response::JSON);

If the parameters contain any value apart from the enum ResponseType value it'll return default value an array form, which isn't recommended.

Some Functions & Methods

success() method

Returning a default success message, using the success() method.

<?php

use PhpSlides\Status;
use PhpSlides\Http\Response;

final class UserController extends Controller {
   public function __invoke() {
      $status = new Status(Response::JSON);
      return $status->success();
   }
}

?>

The success() method takes 2 parameters, $data to render and $status which is the status code.

The first parameter can be either Array or String and the second parameter is an Integer from StatusCode static class. It returns Response::<type> which is passed as a parameter in the Status() function.

use PhpSlides\StatusCode;

$user = [
    "name": "John Doe",
    "email": "[email protected]"
];
return $status->success($user, StatusCode::OK);

error() method

Returning an error Api message using the error() method It also takes 2 parameters, the first is either an Array or String and the second which is interger for setting http_response_code, it has default value of StatusCode::INTERNAL_SERVER_ERROR

It also returns Response::<type>

return $status->error('User not Found', StatusCode::NOT_FOUND);

Full code for success() & error() methods

If no parameter is specified in the Status(), by default it's returning Response::JSON for returning response in JSON format

<?php

namespace PhpSlides\Controller\Api;

use PhpSlides\Controller\Controller;
use PhpSlides\Http\Response;
use PhpSlides\StatusCode;
use PhpSlides\Status;

final class UserController extends Controller
{
   public function __invoke(int $user_id) {
      $status = new Status();

      if ($user_id === 1) {
         $user = [
             'name': 'John Doe',
             'email': '[email protected]',
             'user_id': $user_id
         ];

         $response = $status->success($user); // by default the second parameter is `StatusCode::OK`
      } else {
         // not found message
         $response = $status->error("User user_id=$user_id is not found", StatusCode::NOT_FOUND);
      }

      return $response; // return message as a JSON format `Response::JSON`
   }
}

?>

Namespace and Status Interface

namespace

\PhpSlides\Status()

\PhpSlides\StatusCode

\PhpSlides\StatusText

\PhpSlides\Http\Response

\PhpSlides\Enums\ResponseType

\PhpSlides\Interface\StatusInterface

\PhpSlides\Interface\ResponseInterface

\PhpSlides\Exception\ApiException()

\PhpSlides\Exception\ExceptionInterface

Status() Interface Methods

__construct(string $response = Response::JSON)

public function getStatus (): int;

public function getStatusText (): string;

public function getMessage (): mixed;

public function get (): string|array;

public function getJson (): string;

public function set (mixed $data, int $status = StatusCode::NO_CONTENT, string $statusText = StatusText::NO_CONTENT ): void;

public function setStatus (int $status): void;

public function setStatusText (string $statusText): void;

public function setMessage (mixed $message): void;

public function error (array|string $data, int $status = StatusCode::INTERNAL_SERVER_ERROR): string|array;

public function success (array|string $data, int $status = StatusCode::OK): string|array;

Response{} Interface Method

const JSON = ResponseType::JSON;

const HTML = ResponseType::HTML;

const CSV = ResponseType::CSV;

const XML = ResponseType::XML;

public static function json(array $data = [], int $status = StatusCode::OK): string;

public static function html(array $data = [], int $status = StatusCode::OK): string;

public static function csv(array $data = [], int $status = StatusCode::OK): string;

public static function xml(array $data = [], int $status = StatusCode::OK): string;

public static function array(array $data = [], int $status = StatusCode::UNSUPPORTED_MEDIA_TYPE): array;

enum ResponseType{} Interface

const JSON = 'JSON';

const HTML = 'HTML';

const CSV = 'CSV';

const XML = 'XML';