PHP: Ayırma İş mantığı ve Sunumla mantık, buna değer mi?

7 Cevap php

Possible Duplicate:
Why should I use templating system in PHP?

Ben kaç geliştiricilerin aslında bunu yapmak için sadece meraklı oldu?

Bu zamana kadar ben var ve ben gerçekten şeylerin temiz ve takip etmek daha kolay görünmesini sağlar olmadığını sadece merak ediyordum. Ben Smarty yardım gibi şablon motorlarını kullanarak duydum, ama ben de tam tersini duydum. Onlar sadece gereksiz yükü oluşturmak ve yeni bir dil öğrenme gibi aslında bu.

Herkes burada şablonları ile deneyimi var mı? Onlara size ne hissettiriyor? Büyük projeler üzerinde yararlı ya da sadece zaman kaybı vardır?

Bir yan not: Ben bir tasarımcı yoktur için çalışmak şirket, re-design/upgrade suçlanan bu proje üzerinde çalışırken sadece iki geliştiriciler vardır. Ben de bu şablon motoru ile sorunları olurdu, AJAX biraz kullanabilirsiniz?

7 Cevap

Sadece bu uygulama kod look süpürge yapar, aynı zamanda pek çok uzun vadeli ve kısa vadeli faydaları vardır.

Sen kod düzenleme ile yanlış olamaz. Bir başkası sizden sonra almak için varsa çok korumak daha kolay ve okumayı kolaylaştıran ilk kapalı. Daha önce Smarty ile çalıştım ve o tasarımcıları program kodu ile müdahale çalışmak tutar, güzel.

Şablon sistemleri ve çerçeveler kullanarak çok daha kolay görevleri gerçekleştirmek için yapmak istiyorum. Eğer (tekrar edin etmeyin) DRY takip edebilirsiniz bir kural vardır. Altyapıları, bu hedefe ulaşmak yardımcı olur.

Sen MVC, bu, bu çerçeveler kapalı dayalı model içine bakmak isteyebilirsiniz. Ama mutlaka framework kullanmadan bu tasarım yapısı uygulamak. Öğrenme eğrisi kaçınmak. Zend gibi çerçeveler için, öğrenme eğrisi diğer bazı olanlardan çok daha fazladır.

I Code Igniter kullanmak oldukça kolay ve kendi web sitesinde bazı çok yararlı video eğitimlerini olduğunu bulduk.

Luck Best!

Aslında manzaralı ayrılması gereken iş mantığı var. Sen görünümler içinde bir "şablon dili" olarak php kullanabilirsiniz.

Sen bence herhangi bir şablon motoru ajax kullanabilirsiniz.

Edit

Benim orijinal tepki Html'nizi oluşturmak için bir şablon motoru kullanmak ya da değil mi sorusunu ele.

Ben php sürece sunum mantığı iş mantığı ayrı olarak, şablon görevler için yeterince iyi olduğunu savundu.

Bu sağlar çünkü, hatta basit sayfalar için bu değer yapıyor:

  • brain face olan kodundan uygulama olan kod yalıtmak ve böylece beyin ile karışıklık olmadan, yüzünü değiştirebilir, veya beyin artırabilirsiniz görünüyor frenleme olmadan
  • kodunuzu% 20 hataların% 80 izole
  • yeniden kullanılabilir bileşenleri oluşturmak: Eğer tersi aynı iş kodundan farklı sunum kod atamak, ve olabilir;
  • de genellikle istemci tarafında farklı insanlarla ilgili tasarım istekleri endişeleri (sunum kodu), ve müteahhit tarafında farklı insanlardan özellik istekleri (iş kodu) ayrı kaygıları
  • iş kodu ve sunum kod yazmak için farklı insanları kullanır; Eğer minimal php bilgilerinin eksikliği ile doğrudan sunum kodunu işlemek için tasarımcı olabilir;

MVC taklit ve nesneleri kullanmak değildir basit bir çözüm, olabilir:

  • . bir httpdaccess dosyası üzerinden tüm istekleri alır, tek bir denetleyici php dosyasını kullanabilirsiniz;
  • kontrolör isteğine bağlı olarak, hangi iş ve sunum kullanmak için kod karar
  • Kontrolör daha sonra iş php dosya eklemek için bir include deyimi kullanır
  • iş kodu o büyü, ve sonra sunu php dosyasını içerir yok

PHP is bir motor şablonu (ya da isterseniz, bir köprü önişlemci). HTML PHP mantığı ile yoğun karışık olduğunda, bu fonksiyonları çeşitli parçaları derlemek ve sadece HTML gömülü kısa işlev çağrıları sayfasını oluşturmak için ayrı ayrı tanımlanmış olurdu neden olan, korumak için çok zor hale gelir. Böyle Bitti, ben Smarty ve sınırlayıcı seçimi dışındaki ham PHP, arasında bir fark görmüyorum.

Kaygıların ayırma hatta web üzerinde yazılım geliştirme her tür için çok önemli bir kiracı. Çok kez insanlar sadece mümkün olduğunca az dosyalarının içine her şeyi atmak ve bir gün onu aramak olduğunu bulduk. Bu kesinlikle bunu yapmak için yanlış bir yoldur. Belirtildiği gibi, başkaları için kod Düzeltilebilirlik ile yardımcı olacaktır, ama bundan daha fazla, bu kodu okumak mümkün olur. Her şey ayrıldığında, hakkında kolayca düşünebilirsiniz.

Kod Ateşleyici, ben buldum, PHP ile çalışmak için bir çerçeve öğrenmek için kolay olmuştur. Ben hemen hemen benim şimdiki iş başladı ve yukarı ve oldukça verimli bir şekilde kullanarak, bunu dinledikten hiç itibaren, bir kaç gün içinde onunla birlikte çalışan. Ben de, tüm başka bir dil olarak görmüyorum. Temel olarak, çerçeve kullanarak yönetilebilir bir şekilde şeyleri düzenlemek için beni zorlar, ve ek işlevsellik için jQuery eklentileri ve bu tür kullanarak, ya da Java paketleri ithal anlagous olduğunu. Başka bir dil öğrenme gibi olduğunu düşüncesi neredeyse aptalca görünüyor.

Yani, kısacası, düzenlemek düzenlemek. Sadece saçma olur soyutlama bir düzeyde olduğunu, ancak, unutmayın. Bir kural, bir sınıf (ya da bizim durumumuzda dosyası) çok iyi bir şey yapmak gerektiğidir. Bu baskı sarar bir sınıf, ama bir dize alır karmaşık bir algoritma kullanarak biçimlendirir ve daha sonra (bu sadece bir örnektir) yazdırır anlamına gelmez. Her sınıf için özel bir şeyler yapmak gerektiğini ve herhangi bir çerçeve olmadan bunu yapabilir. Ne MVC büyük kılan, olsa da, bu Model, View, ve Denetleyici (en azından bu çerçevelerin durumunda olan, tek bir sınıf düzeyinde, ama "paketleri" düzeyinde değil, daha fazla şeyler organize etmenizi sağlar olduğunu; projeleri paketlemek için başka yollar) vardır. Yani, şimdi iyi şeyler yapmak tek sınıfları var, ve sonra onları da başka şeyler yapmak benzer sınıfları ile gruplandırılmış var. Bu şekilde, her şeyin bir yönetilebilir çok temiz tutulur.

Eğer paketler sınıfa organize şeyler var, ve bir kez düşünmek son seviye, bu sınıflar paketler arasında erişilen almak nasıl. Böylece görünümden (genellikle veritabanı malzeme ve PHP dünyada "iş" kod) modeli, (genellikle bilgi aldığı ayıran, Görünümü <- -> Controller <> MVC kullanırken, erişim genellikle Model gidecek kullanıcı, ve sonra gerekirse, modelden daha fazla bilgi almak ya da giriş bilgileri ile başka bir şey yapacak denetleyicisi) için birlikte geçirir. Diğer iki paket arasındaki santral gibi eserlerin kontrolör tür usually. Yine, paketleme ve bu ile gitmek için başka yollar vardır, ama bu yaygın bir yoldur.

Umarım yardımı olur.

Smarty ve diğer php şablon çerçeveler gerçekten zaten PHP derlemek daha fazla şey yapmak ve aynı zamanda daha hızlı işlem için izin vermek çoğu durumda kendi sonuçlarını önbelleğe. Hepiniz kendi başınıza yapabilirsiniz, ama hiç Smarty üretir derlenmiş şablonlar bakmak, ve oluşturduğunuz özgün Smarty şablona karşılaştırmak eğer, o bir çok daha okunabilir diğerinden daha görebilirsiniz.

Ben çoğunlukla yarıya devam eden proje sayesinde (HTML :: Şablon) bu gün Mod_perl'in ve şablonları kullanarak başladım yazmaya. Ben yine karar olsaydı, ben sağ baştan şablonları kullanmak - şablonları kullanmak için daha sonra yeniden tür sıkıcı, daha güzel ve temiz bir kod olsun ama ödüllendirici çünkü. Php 2-3 sayfaları daha büyük bir şey için, ben de bazı şablon motoru kullanacak.

Böyle Smarty gibi bir çiftleşmiş motoru biri büyük avantajı olmayan geliştiriciler gerekli (gerçekten biri olamaz ayrı mantık ve basit sitelerde tüm ama ekran) ön-uç kullanılır mantığı gömmek için kullanabilirsiniz olmasıdır. Ancak, geliştirici PHP bence tercih olacaktır sonra kullanarak sayfaları korumak biri olup olmadığını.

Eğer büyük mantık blokları dışında ayrı ve döngü için ve için-her bir akış kontrol deyimleri (yani yazılı ifadeler kullanmak, ya da sadece bir-gömlekleri, vb baskı ifadeleri kullanmayın) tutarlı bir takunya korumak olmadığını Sonra o tamam olmalıdır.