PHP form sonrası, otomatik olarak bir nesne eşleme (model bağlama)

4 Cevap php

ASP.NET MVC 2 gelişme bir sürü yapmak, ama ben iş yerinde küçük bir proje ile mücadele ediyorum ve PHP yapılması gerekiyor.

Bir sınıfa, haritalama form yazı alanlarını bağlanma modeli yapmak için yerleşik PHP için bir şey var mı? Benim PHP kodu Bazıları şu anda bu gibi görünüyor:

class EntryForm
{
    public $FirstName = "";
    public $LastName = "";
}

    $EntryForm = new EntryForm();

if ($_POST && $_POST["Submit"] == "Submit")
{
    $EntryForm->FirstName = trim($_POST["FirstName"]);
    $EntryForm->LastName = trim($_POST["LastName"]);
}

Built-in tipik bir PHP, ASP.NET MVC bulmak gibi bu tür haritalama yapacağını yüklemek şey var mı, yoksa ek bir çerçeve gerektirir?

4 Cevap

Yerli ama kendi sınıfları ya da standart bir sınıfını kullanarak izin verir daha iyi bir çözüm değil ...

function populateWithPost ($obj = NULL)
{
  if(is_object($obj)) {

  } else {
      $obj = new StdClass ();
  }

  fveyaeach ($_POST as $var => $value) {
      $obj->$var = trim($value); //here you can add a filter, like htmlentities ...
  }

  return $obj;
}

Ve sonra gibi kullanabilirsiniz:

class EntryFveyam
{
    public $FirstName = "";
    public $LastName = "";
}

$entry = populateWithPost($entry);

veya

 $obj = populateWithPost();

Ne arıyorsanız bir ORM (Object Relationship Mapping) tabakasıdır. PHP Doctrine, biri bir çift vardır. O dedi, mahomedalidp cevabı PHP yapılan şeyler almak için çok kullanışlı.

PHP Dahili? Hayır.

Eğer (tüm sonra, ASP.NET de bir çerçevedir) bu biri için gitmek gerekir nerede ima çerçeve cevap

Bunun için PHP yerleşik bir şey yok. Ama kolay EntryForm sınıfta uygulamak. Sen public function populate($post) EntryForm eklemek ve bunu $ _POST değişkeni geçebileceği. Sınıf özniteliği varsa bu döngü boyunca ve onu açardı. Aslında, uygular populate() soyut bir sınıf inşa edebileceğini ve EntryForm, veya istediğiniz herhangi başka bir formu ile bunu genişletmek. Sen tabii ki, hem de girdileri isteyeceksiniz.