PHP uygulamasının ana bileşenleri / katmanları nelerdir?

3 Cevap php

PHP uygulamasının ana bileşenleri nelerdir? Ben bu ile geldim:

  1. Veritabanı
  2. HTML şablonları
  3. Oturumlar / Cookies / Doğrulama
  4. Kullanıcı Girişi ($ _GET veya $ _POST veya URL bölümler)

Bu ana bileşenleri veya herhangi bir diğerleri var?

Bunu soruyorum nedeni, bu yüzden teknik olarak mümkün olacak hakkında endişelenmenize gerek kalmadan kendi sınıfındaki her 'nesne' koyabilirsiniz olduğunu. Örneğin, ben bunu sistem / php dili, vb kalanı ile uyum nasıl endişelenmenize gerek kalmadan, bir blog mesajları eklemek için izin veren bir post sınıf var

3 Cevap

Bu this question gibi bir çok geliyor.

Ben kuvvetle Martin Fowler tarafından Kurumsal Uygulama Mimarlık Modelleri bakmak öneriyoruz.

Ben de size Model veya Domain yanı sıra Nesne İlişkisel Haritalama veya Veritabanı Soyutlama ile ilgili bu sitede sorular için arama öneriyoruz. Ben mükemmel içeriğin büyük bir özellikle PHP açısından orada olduğunu biliyorum.

Ben gönderdiniz bu soruda iki soruya bakınız. İlk olarak, bir sitenin genel mimari bileşenleri nelerdir. Genellikle bazı tezahürü bu üç olacak:

  1. Veritabanı ve Veritabanı Etkileşim Katmanı
  2. Denetleyici - $ _GET ve $ _POST (istek) ve View içeriğini atama ve sonuçta render işler.
  3. Görünümü - sadece HTML ve bu koleksiyonları ve değişken çıkış üzerinden yineleme için döngüler gibi çok temel bir kod içermelidir.

Gördüğüm ikinci soru uygulamasında belirli bir iş nesnesi işleme yerleştirmek nerede. Ben (etki alanı içinde) iş nesneleri olarak ve bir veritabanı tablosundaki satır hem mesajına etkileşim gerektiğini varsayalım, çünkü tartışma biraz daha yer alır yerdir. Bu endişeleri her ikisi aynı sınıf Ruby on popülarize etti Active Record denilen bir modelin kullanılmasıyla içinde sarılmış olabilir. Ancak, ilgili uygulama ve veritabanı karmaşıklığına bağlı olarak size tüm iş mantığını içeren veritabanı etkileşimi katman ve başka Mesaj sınıfı gibi davranan bir Mesaj sınıfını oluşturarak veritabanı etkileşimi gelen iş mantığı ayıran düşünebilirsiniz.

Ben veritabanı arayüzü sağlayan bir bileşen olarak bir veri erişim katmanı eklemek istiyorum.

Endişeleri bu tür bakmak mevcut desenler vardır. Ve sen, nerede bu işin çok önceden yapılmış bakmak isteyebilirsiniz o kalıpların üzerine inşa edilir çerçeveler vardır:

Cake PHP

Solar PHP

Eğer model-view-controller çerçevesinin bazı tür istiyorum gibi geliyor. Bu desen izleyen bir çerçeve manzaralı içine tüm modellerin içine DB işi, kontrolörler içine iş mantığını ve sunumu / şablonları saklar. İki çerçeveler akla geliyor:

  1. CodeIgniter (kişisel favori)
  2. Cake PHP

Bu rota giderseniz sizin tarif ettiğiniz gibi MVC çerçeveler verileri ayırmak için yardımcı olacağını göreceksiniz. Artı bu sistemleri eklentileri çok sayıda veya daha fazla gibi kimlik doğrulama, oturum yönetimi, post / olsun veri, gibi şeyler taşırken, yerleşik özelliğe sahip olma eğilimindedir