PHP MVC Sorular

3 Cevap

Birisi bir görünüm içine bir kontrolör değerleri geçirmek için en iyi yolu ne olurdu bana söyleyebilir misiniz? Herkes CodeIgnitor ile oynadı, onlar ne demek istediğimi anlayacaksınız. Ben CI koduna baktım ama bu işler dosyayı bulamıyor. Ben bunun nasıl yapıldığını bilmek isteriz.

Teşekkürler!

3 Cevap

Bildiğim kadarıyla mutlaka bir "en iyi" yol yoktur, ama kullanılan birçok kez gördüm ve kendim kullandım yaygın bir yöntem yoktur. Genellikle bir ilişkisel dizi ve extract() fonksiyonu veya variable variables ya içerir.

Temelde, her yaptığın senin şablon değişkenleri olacak tuşlarını kullanarak, bir ilişkisel diziye verilerinizi kurulur.

//inside the controller
$data['name'] = 'my name';
$data['zip'] = '90210';

$data dizisi doğrudan veya dolaylı bir şekilde görünümüne geçti, ve extract() veya (gerçekten aynı şey) değişken değişkenler bir döngü kullanarak aracılığıyla ayıklanır. Daha sonra şablon dahil edilebilir ve bu değişkenler yerel kapsamı içindedir.

//inside the view rendering process
extract($data);
//$name and $zip now exist

Kod Ateşleyici tam bu prosedürü takip eder. İç system\libraries\Loader.php en son sürümü (1.7.1) Eğer bir görünüm / şablon (aynı şey gerçekten yüklemek için CI denetleyicisi diyoruz view() adında bir işlevi var, CI). Sen ikinci parametre olarak bir veri dizisi geçmek.

view() bunu geçti verileri ayıklar (ve diğer bazı tuhaf önbelleğe şeyler yapar) aynı dosyada _ci_load() adında bir iç işlevini çağırır. Sizin değişkenler lokal fonksiyon kapsamında bundan sonra gitmeye hazır, ve sonra şablon içinde manipüle edilebilir sonraki include(), dosya içinde yer oluyor her şey var bu yana yerel _ci_load() de kapsam işlev.

Ben daha önce ayarlanmış bir kirli hızlı-ve-homebrew MVC aynı tasarıma kullandım. Oldukça etkili.

Sen 15-min blog sample CakePHP 's denemek isteyebilirsiniz. I Kodu Igniter denemedim.

Zend Framework, bu kadar basit olarak

class IndexController {
 public function IndexAction {
  $this->view->name='Name';
 }
}

$ this-> görünüm-> xxxx görünümünde değişkeni ayarı.