{"id":29291712,"url":"https://github.com/dconco/phpslides-status","last_synced_at":"2025-07-06T08:09:12.997Z","repository":{"id":246735585,"uuid":"822035379","full_name":"dconco/phpslides-status","owner":"dconco","description":"PhpSlides Status Response in handling API","archived":false,"fork":false,"pushed_at":"2024-08-22T16:04:17.000Z","size":73,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-06T06:33:16.589Z","etag":null,"topics":["api","http-status","phpslides","phpslides-status","status"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dconco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"dconco","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://www.buymeacoffee.com/dconco"]}},"created_at":"2024-06-30T05:58:53.000Z","updated_at":"2024-08-25T23:07:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"1d64fd41-85d8-4641-b152-817dffe177c2","html_url":"https://github.com/dconco/phpslides-status","commit_stats":null,"previous_names":["dconco/phpslides-status","dconco/slides-status"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dconco/phpslides-status","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dconco%2Fphpslides-status","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dconco%2Fphpslides-status/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dconco%2Fphpslides-status/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dconco%2Fphpslides-status/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dconco","download_url":"https://codeload.github.com/dconco/phpslides-status/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dconco%2Fphpslides-status/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263868240,"owners_count":23522320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","http-status","phpslides","phpslides-status","status"],"created_at":"2025-07-06T08:09:12.358Z","updated_at":"2025-07-06T08:09:12.990Z","avatar_url":"https://github.com/dconco.png","language":"PHP","funding_links":["https://ko-fi.com/dconco","https://www.buymeacoffee.com/dconco"],"categories":[],"sub_categories":[],"readme":"# HTTP PhpSlides-Status\n\n\u003cdiv align=\"center\"\u003e\n   \u003cimg src=\"./images/status.jpeg\" alt=\"\" width=\"100%\" /\u003e\n\u003c/div\u003e\n\n## Installation\n\nAfter creating your PhpSlides project, navigate to the project directory and install PhpSlides-Status package using this command below:\n\n```bash\ncomposer require dconco/phpslides-status\n```\n\nOr download the zip file directly from the released version, ectract the file and add it to a folder 📂 in your PhpSlides project.\n\n[Download phpslides-status zip](https://github.com/dconco/phpslides-status/releases/tag/v0.0.1)\n\n## Documentation\n\n### Using Status() class function\n\nCreate a Status instance for API response. Which is used in PhpSlides API Controller Class\n\n```php\n\u003c?php\n\nnamespace PhpSlides\\Controller\\Api;\n\nuse PhpSlides\\Controller\\Controller;\nuse PhpSlides\\Status;\n\nfinal class UserController extends Controller\n{\n   public function __invoke() {\n      $status = new Status();\n   }\n}\n\n?\u003e\n```\n\nYou can pass a string value to the `Status()` function parameter which is by default `Response::JSON` using the Response namespace `PhpSlides\\Http\\Response`\n\nIn returning value in JSON format. The parameter includes this enum value type:\n\n```php\nuse PhpSlides\\Http\\Response;\n\nResponse::JSON;\nResponse::HTML;\nResponse::CSV;\nResponse::XML;\n\nnew Status(Response::JSON);\n```\n\nIf the parameters contain any value apart from the `enum ResponseType value`\nit'll return default value an array form, which isn't recommended.\n\n### Some Functions \u0026 Methods\n\n#### success() method\n\nReturning a default success message, using the `success()` method.\n\n```php\n\u003c?php\n\nuse PhpSlides\\Status;\nuse PhpSlides\\Http\\Response;\n\nfinal class UserController extends Controller {\n   public function __invoke() {\n      $status = new Status(Response::JSON);\n      return $status-\u003esuccess();\n   }\n}\n\n?\u003e\n```\n\nThe `success()` method takes 2 parameters, `$data` to render and `$status` which is the status code.\n\nThe first parameter can be either Array or String and the second parameter is an Integer from `StatusCode` static class.\nIt returns `Response::\u003ctype\u003e` which is passed as a parameter in the `Status()` function.\n\n```php\nuse PhpSlides\\StatusCode;\n\n$user = [\n    \"name\": \"John Doe\",\n    \"email\": \"john@doe.com\"\n];\nreturn $status-\u003esuccess($user, StatusCode::OK);\n```\n\n#### error() method\n\nReturning an error Api message using the `error()` method\nIt also takes 2 parameters, the first is either an Array or String and the second which is interger for setting `http_response_code`,\nit has default value of `StatusCode::INTERNAL_SERVER_ERROR`\n\nIt also returns `Response::\u003ctype\u003e`\n\n```php\n\nreturn $status-\u003eerror('User not Found', StatusCode::NOT_FOUND);\n```\n\n#### Full code for success() \u0026 error() methods\n\nIf no parameter is specified in the `Status()`,\nby default it's returning `Response::JSON` for returning response in JSON format\n\n```php\n\u003c?php\n\nnamespace PhpSlides\\Controller\\Api;\n\nuse PhpSlides\\Controller\\Controller;\nuse PhpSlides\\Http\\Response;\nuse PhpSlides\\StatusCode;\nuse PhpSlides\\Status;\n\nfinal class UserController extends Controller\n{\n   public function __invoke(int $user_id) {\n      $status = new Status();\n\n      if ($user_id === 1) {\n         $user = [\n             'name': 'John Doe',\n             'email': 'john@doe.com',\n             'user_id': $user_id\n         ];\n\n         $response = $status-\u003esuccess($user); // by default the second parameter is `StatusCode::OK`\n      } else {\n         // not found message\n         $response = $status-\u003eerror(\"User user_id=$user_id is not found\", StatusCode::NOT_FOUND);\n      }\n\n      return $response; // return message as a JSON format `Response::JSON`\n   }\n}\n\n?\u003e\n```\n\n## Namespace and Status Interface\n\n### namespace\n\n`\\PhpSlides\\Status()`\n\n`\\PhpSlides\\StatusCode`\n\n`\\PhpSlides\\StatusText`\n\n`\\PhpSlides\\Http\\Response`\n\n`\\PhpSlides\\Enums\\ResponseType`\n\n`\\PhpSlides\\Interface\\StatusInterface`\n\n`\\PhpSlides\\Interface\\ResponseInterface`\n\n`\\PhpSlides\\Exception\\ApiException()`\n\n`\\PhpSlides\\Exception\\ExceptionInterface`\n\n### Status() Interface Methods\n\n`__construct(string $response = Response::JSON)`\n\n`public function getStatus (): int;`\n\n`public function getStatusText (): string;`\n\n`public function getMessage (): mixed;`\n\n`public function get (): string|array;`\n\n`public function getJson (): string;`\n\n`public function set (mixed $data, int $status = StatusCode::NO_CONTENT, string $statusText = StatusText::NO_CONTENT ): void;`\n\n`public function setStatus (int $status): void;`\n\n`public function setStatusText (string $statusText): void;`\n\n`public function setMessage (mixed $message): void;`\n\n`public function error (array|string $data, int $status = StatusCode::INTERNAL_SERVER_ERROR): string|array;`\n\n`public function success (array|string $data, int $status = StatusCode::OK): string|array;`\n\n### Response{} Interface Method\n\n`const JSON = ResponseType::JSON;`\n\n`const HTML = ResponseType::HTML;`\n\n`const CSV = ResponseType::CSV;`\n\n`const XML = ResponseType::XML;`\n\n`public static function json(array $data = [], int $status = StatusCode::OK): string;`\n\n`public static function html(array $data = [], int $status = StatusCode::OK): string;`\n\n`public static function csv(array $data = [], int $status = StatusCode::OK): string;`\n\n`public static function xml(array $data = [], int $status = StatusCode::OK): string;`\n\n`public static function array(array $data = [], int $status = StatusCode::UNSUPPORTED_MEDIA_TYPE): array;`\n\n### enum ResponseType{} Interface\n\n`const JSON = 'JSON';`\n\n`const HTML = 'HTML';`\n\n`const CSV = 'CSV';`\n\n`const XML = 'XML';`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdconco%2Fphpslides-status","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdconco%2Fphpslides-status","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdconco%2Fphpslides-status/lists"}