0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[オレオレ03] リクエストを処理するクラスを作る

Last updated at Posted at 2023-12-29

目的

  • リクエストの処理を分離することでリクエストに起因するエラーを封じ込める

目次

  1. Requestクラスを作る
  2. index.php で GETパラメータを取得する
  3. ブラウザで確認する

Requestクラスを作る

$ cd /opt/project/stampede
5 touch Request.php
Request.php
<?php

class Request
{
    /**
     *
     */
    private $get = [];

    /**
     *
     */
    private $post = [];
    
    /**
     *
     * @var 
     */
    private static $instance = null;

    /**
     * コンストラクタ
     *
     * @return void
     */
    private function __construct()
    {
        $this->get = $_GET;
        $this->post = $_POST;
    }

    /**
     * リクエストクラスのインスタンスを取得する
     * 
     * @return object
     */
    public static function getInstance()
    {
        if (is_null(self::$instance) === true) {
            self::$instance = new self;
        }
        return self::$instance;
    }

    /**
     * 全てのリクエストパラメータを取得する
     * 
     * @return array
     */
    public function all()
    {
        return array_merge($this->get, $this->post);
    }

    /**
     * 任意のGETパラメータを取得
     * 
     * @param  string $key
     * @param  mixed $default
     * @return string
     */
    public function query(string $key, $default = null)
    {
        if (isset($this->get[$key]) === true) {
            return $this->get[$key];
        }
        if (is_null($default) === false) {
            return $default;
        }
        // エラー
    }
}

index.php で GETパラメータを取得する

index.php
<?php

ini_set('display_errors', "On");

require_once('/opt/project/stampede/Request.php');

$request = Request::getInstance();

$params = $request->all();

header('Content-Type: text/plain; charset=UTF8');
echo print_r($params, true);
exit;

ブラウザで確認する

https://192.168.56.110/stampede/index.php?name=sato&hoge[]=hare1&hoge[]=hare2


次の記事
[オレオレ04] Viewクラスを作る
前の記事
[オレオレ02] シンボリックリンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?