Zend_Framework-Nerede $ _GET ve $ _POST (HTTP Request) işleme koyun için?

2 Cevap php

Geçenlerde aynı fikri önermek gibi diğer mesajlar bir dizi yol açtı this post okuyun: Modeller tersi tüm Görünüm modeli ile doğrudan iletişim gerekir her şeyi yapmak ve Denetleyici kalır ise yolumdan. Ancak, gösterilen tüm örneklerde oldukça basit ve hiçbiri gerçekten herkes modeli isteği işlemek için sorumlu olmalıdır "merak aldı beni bir istek / yanıt döngüsünün tam işleme uygulamak için çalıştı nasıl bir örnek gösterir (yani $ _GET, $ _POST, vb) kendisi? " ve "kontrolörü sadece gerekli model (ler) örneğini ve görünümüne model (ler) geçmek için bir geçişkenlik olarak çalışmalıdır?". (Aslında bir örnek modelde bir Zend_Form nesne gömme aşırı alınmış bulunan)

Fowler genel MVC ve sadece denetleyici s hakkında ne diyor benim okuma bakıldığında ilk bakışta göründüğü gibi ince denetleyici katman iyi olur. Ama sonra ben üzerinden geri ve o MVC ve şimdi benim içgüdülerim Zend_Framework bu modellerin her ikisi de uygulanmasında, aslında yarattığı öneririz (hem desenler kontrolörleri tanımlamak çünkü sadece sular muddies) Ön Kontrol ikisi hakkında ne diyor incelemek için zaman aldı MVC Controller fonksiyonları ve Ön Controller (ya da böyle) bir Command nesnesi olanlar gerçekleştirir bileşik nesne.

Yani genel görüşler apps benzer desenler hayata geçirdik başkalarının ne olacağını merak ediyorum - Eğer denetleyici tabaka içinde tamamen isteği işlemek ya da sizin istek modeli farkına varması ve modelin içinde doğrudan parametreleri ele?

2 Cevap

Benim ilk düşünce modeli isteği her türlü işleme kaçınmaktır. Bu kontrolörün işidir. Eğer istekleri (GET veya POST) ele bir modeli bulunmuyor varsayalım: Burada neden olduğunu. Bu yapı büyük olasılıkla başlangıçta iyi çalışacaktır. Şimdi, AJAX işlevsellik çeşit eklemek veya sistem için bir servis arayüzü koymak istediğinizi varsayalım. Şimdi basit GET / POST, yani JSON veya XML daha fazla kabul ettiğini, sizin model her istek türü ayırt etmek ve onları ayrıştırmak nasıl bilecek. Ben o sadelik ve modeli kod netlik bir sürü yok inanıyorum. Ben denetleyicisi tabakası ince olması gerektiğini kabul ediyorum, ama aynı zamanda bir rol ve uzmanlığa sahip olmalıdır. Benim için bir denetleyicileri uzmanlık için:

  1. Gelen istekleri işlemek
  2. Modele teslimat verileri
  3. İstek / model verileri kabul
  4. Görünümüne verinin modelini geçmek

Ben görünümü modeli hakkında bilmeniz gereken ne kadar kararsız. Bazı insanlar modeli düz görünümüne gitmek öneririz, ama bu kırılgan kavrama olduğunu düşünüyorum. Bu sık sık görünümünde mantık yol açar. Ayrıca, bu değişime ayak uydurmak için üzerlerine büyük bir yük koyar ana geliştiricileri gibi programlama anlayışlı gibi görünümü üzerinde çalışan ekip üyesi olmayan bir proje üzerinde çalışıyorsanız. Bunun yerine tam modelleri teslimi nötr yapıda benim görüşleri veri Ben eli paketlemek için eğilimindedir.

MVC Benim yorumum çok pragmatik olduğunu. Modelin iş üzerinde çalışıyoruz model etki ve veri nereden geldiğini takmamalıydım. Ben sık sık, belki de bir komut satırı uygulaması veya bir masaüstü uygulamasında web uygulaması dışında kullanılan olabilir varsayımı ile model kodu yapısı. Birliğin bu tür nadiren olur, ama her katmanın temizlemek amacıyla yol açar. Kontrolörleri iş onlar istemci istekleri, modelleri veya görünümü olabilir, taraflar arasında veri taşımak için. Denetleyicisi çok az etki mantığı olmalı, ama bu herhangi bir kod yok anlamına gelmez. Son olarak, görünümü sadece güzel bakmak gerekir. Umut olur.

(HTTP istekleri gibi) kullanıcı talimatları / girişi işleme denetleyicisi işidir. Model veri getiriliyor / işlemek / çalışma ve görünüm kullanıcıya sonuçlarını gösteren içindir. bu görünüm ve model arasında bağlantı çoğu zaman bir kontrol görevi olduğu anlamına gelir.