Menyimpan METHOD POST Kedalam Fungsi PHP



menyimpan parameter post kedalam fungsi atau class - root93

Saya sering sekali melihat sebuah metode post yang ditulis ketika membuat sebuah program pada jenis framework tertentu dengan gaya yang aneh, maksud saya ketika saat menangkap sebuah post, tapi disana saya tidak melihat parameter post yang digunakan seperti misal hanya menggunakan $this->input(nama_paramter) atau $this->input->post(nama_paramter). Saya sendiri belum belajar tentang framework, hanya pernah melihat – lihat saja. Jadi artikel ini ditulis berdasarkan keresahan saja, bukan berdasarkan experience yang tinggi, hanya kira – kira saja.

Mungkin ini hal spele, tapi siapa tahu ada yang sedang mencari mengapa parameter input untuk menangkap post method ditulis seperti itu ?

$this->input(nama_paramter) ataupun $this->input->post(parameter_data) bukan tidak mengandung parameter $_POST, tapi menurut Saya itu semua karena sudah disederhanakan kedalam sebuah CLASS atau fungsi sehingga penulisannya jauh lebih ringkas dan mudah untuk dipanggil daripada harus mengulang – ngulang menulis $_POST, walau seperti sama saja karena kitapun harus menulis ulang $this->post bla bla, tapi sepertinya di framework bukan hanya untuk menangani atau mendapatkan request postnya saja, melainkan juga mengandung unsur – unsur filter data yang di inputkan, jadi satu perintah itu mengandung beberapa unsur lain selain untuk menangkap input post juga untuk filtering data yang dimasukan.

Contoh
Untuk dapat Menyimpan METHOD POST Kedalam Fungsi PHP menggunakan gaya PHP OOP, Saya akan memberikan contoh sederhana.


class inputan
{
 public function input($data)
 {
  $data = $_POST[$data];
  return $data;
 }

}



jika ingin menyertakan jenis filtering tertentu, anda bisa menambahkan parameter lain seperti misal


  public function input($data){

  //menyimpan post method kedalam fungsi
  $data = $_POST[$data];
  $data = htmlspecialchars($data);
  $data = trim($data);
  $data = stripcslashes($data);
  return $data;
 
 }
 
  



Pada parameter diatas, maka untuk menangkap post input, sekaligus memfilter input, Anda hanya cukup menulisnya menjadi seperti berikut :

$this->input('parameter_data');

Jadi dalam satu fungsi sudah ada dua jenis manfaat yang didapatkan, pertama method untuk menangkap input post sekaligus melakukan filter data.

Selanjutnya bagaimana jika ingin membuat class atau fungsi dengan pemanggilan parameter dengan multiple arrow misal seperti $this->input->post('parameter_name') ?

Untuk membuat parameter dengan pemanggilan seperti $this->input->post('parameter_name') Anda bisa membuat dua buah class, class pertama berisi parameter post dan class kedua berisi parameter dengan variabel $input kemudian variabel $input di class kedua ini akan memanggil class pertama.

Contoh :


<?php
class userPost
{
 
 public function post($data)
 {
  $data = $_POST[$data];
  return $data;
 }
}
class userInput
{
 protected $input;
 public function __construct()
 {
  $this->input = new userPost();
  
 }
}


class testForm extends userInput
{
 public function loadTest()
 {
  if($_SERVER['REQUEST_METHOD']=='POST'){
   echo $this->input->post('nama');
  }
   echo '

    <!DOCTYPE html>
    <html>
    <head>
     <title>f</title>
    </head>
    <body>
      <form action="'.$_SERVER['PHP_SELF'].'" method="post">
        <input type="text" name="nama" size="30">
        <input type="submit" value="test">

      </form>

    </body>
    </html>

   '; 
 }
}
$n = new testForm();
$n->loadTest();
?>

Selanjutnya, bagaiamana untuk menambahkan filter kedalam fungsi filter kedalam class tersebut ? Anda bisa menulis class UserPost menjadi seperti berikut :

class userPost
{
 public function filter($data)
 {
  $data = htmlspecialchars($data);
  $data = trim($data);
  $data = stripcslashes($data);
  return $data;
 }
 public function post($data)
 {
  $data = $_POST[$data];
  $data = $this->filter($data);
  return $data;
 }
}

Related Posts :

0 Response to "Menyimpan METHOD POST Kedalam Fungsi PHP"

Post a Comment

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...