Ben muhtemelen oldukça (Zend Framework ala) formları etrafında doğrulama kuralları bina daha öneririm, sizin etki alanı nesneleri içinde doğrulama inşa etmeliyiz. Ardından doğrulama için etki alanı nesnesi doğrudan form verilerini göndermek. Ben Zend Framework kullanıyorum, ama benim doğrulama ihtiyaçları için bu temel yapısını kullanabilirsiniz:
/**
* Contains the domain object properties.
* @var array
*/
protected $_data = null;
/**
* @var array
*/
protected $_filters = null;
/**
* @var array
*/
protected $_validators = null;
public function validate($data = null)
{
if(!$data) {
$data = (array) $this->_data;
} else {
$data = array_merge((array) $this->_data, $data);
}
$this->_input = new Zend_Filter_Input($this->_filters, $this->_validators, $data, $options);
$this->_input->addValidatorPrefixPath('LP_Validate_', 'LP/Validate/');
$this->_input->addFilterPrefixPath('LP_Filter_', 'LP/Filter/');
if($this->_input->isValid()) {
$this->_data = (object) $this->_input->getEscaped();
return true;
} else {
$this->_data = (object) $data;
return false;
}
}
Doğrulama ile benim şimdiki yaklaşımla bazı sınırlamaları ben nesne özellikleri ve doğrulama işlevini çalıştırdıktan sonra mevcut nesne için orijinal verileri tutmak için bir yol anlamaya ihtiyacımız olduğu gerçeğine gerekli özel belirleyiciler arayamam ki . Ama aksi takdirde şimdiye kadar iyi çalıştı.
Bildiğim kadarıyla CRUD ilgili olarak, cevap size hitap etmek istiyorum ve kısmen ne desen size aşina ve t uygulamak denemek istiyorum '/ don yok gibi t ve' / don yok sorunların karmaşıklığı kısmen bağlıdır .
Açıkçası uygulamak için en sağlam tasarım ayrı Alan Nesne üstüne oturan Veri Eşleyicisi'ne kullanmaktır. Ancak, çoğu durumda bu overkill olduğunu ve bu nedenle sadece Active Record desen kötülenen (uygunsuz) çok kullanabilirsiniz. Bu CodeIgniter ve Zend Framework sağladıkları ne yaptıklarını temelde.
Benim tasarım ve çalıştı oldukça kaygan Veraset Haritalama davalarını gerekli çünkü Veri Mapper deseni kullanan özel bir ORM katmanı oluşturmak zorunda sona erdi ama ben tablo ile birlikte meta haritalama işlevsellik kaybetme pişman ve Satır Geçidi yok Zend Framework uygulamaları. (Etkili ben bunu nasıl yaptığını bana göstermek istediğiniz veri Mappers kullanarak meta eşlemesi oluşturmak için bir yol bulabilirsek:. P). Kendi inşa etmek için çalışıyoruz olsa da, bunu ben gördüm iyi PHP kod bazı vardır ve çok yakından standart tasarım desenleri aşağıdaki gibi Zend Framework bakarak düşünebilirsiniz.
Bir Numaralandırma sınıfta görmek güzel olurdu bir şey limiti fıkra sayfa göstermesi gerekir değerlerin ne aralığına dayalı sorguya uygulanabilir şekilde bir veritabanı nesnesine doğrudan kravat yeteneği olacaktır. Aksi takdirde, pagination ile anahtar bileşenleri geçerli sayfanın takip, sayfa başına görüntülenecek kayıt sayısını ve iterated için değerleri içeren koleksiyon nesne çeşit tutmak için vardır.
Ama en azından, size tüm koleksiyonu önceden yüklemek ve daha sonra bu büyük bir performans isabet sağlayacak gibi sadece kayıt belirli bir aralık görüntü yok emin olmak istiyorum.
Bildiğim kadarıyla Ajax istekleri ile ilgili olarak, ben bir HTTP istek özellikle bu bağlamda dayanarak bunu işleme sonra bir XHR ya da değil ve olup olmadığını kontrol edebilirsiniz bağlam yardımcısı çeşit bina öneririz.