PHP sadece specfic fonksiyonları yüklemek için en iyi yolu

3 Cevap php

Ben düşük trafik olacak, bir kişisel web sitesi için kendi içerik yönetim sistemi yazıyorum, ama benim gelecekteki bilgi için en iyi uygulamaları kullanmak istiyorum.

Planım, ayrı bölümler var temelde olmayan ilk kök dizini, bu kendi komut dosyası olacak ve doğrudan tüm alt sayfaları kontrol edecektir. Ben her şeyi şeffaf hale getirmek mod_rewrite kullanarak kök dir in index.php kontrol olmak istiyorum.

Ne de o bölümde değil, diğer her bölüm için gerekli olan ne sadece yüklemek için en iyi yolu olurdu? Ben bu yüzden sadece içerebilir her bölüm için ayrı bir dosya kullanarak ve ben kullanıyorum URL tabanlı adlandırma düşünüyordum. Ama bu pek şık görünüyor. Bunu gerçekleştirmek için daha iyi bir yolu var mı?

3 Cevap

MVC pattern bir göz ve Front Controller pattern var. Bu, çok çeşitli karmaşıklık ile çeşitli şekillerde uygulanabilir. Temelde, FrontController herhangi gelen istekleri kabul ve uygun kontrolörleri (sizin bölümler) onları gönderir. Sizin kontrolörleri, sonra model, örneğin herhangi bir veri almak olacaktır iş nesneleri ve görünümüne onları itmek. Görünümü istemciye geri göndermek alır budur.

Gordon emin Eğer kurulum basit bir sınıf autoloader can kullanmak gerekmez herhangi bir ekstra sınıfları yüklenmiyor yapmak için, sözü MVC modeline ek olarak. Autoloader şekillerde bir dizi çalışabilir, ancak MVC app Şu anda üzerinde çalışıyorum, sınıf adı da dosyanın adı ve dosya da bulunduğu o belirler.

__autoload şu anda bulunmayan bir sınıf erişmeye çalışırsanız, PHP çağıran sihirli bir yöntemdir. Sonra sonra tekrar sınıfa aynı çağrıyı girişimleri ne olursa olsun eylem işlevi belirtilen gerçekleştirir. Bir autoloader uygulanması yaklaşık% 75 ile benim MVC app bir örneğinin ortalama bellek izi kesti ... burada belgelerine göz atın:

http://us3.php.net/autoload

Bu daha sonra somoehow bazı işlevler / istenen son nokta (bir denetleyici) ne olduğunu sıralamak için gidiyoruz sınıfları ve envoke olacak - Peki ne normalde görmek yazma kuralı sadece düz bir erwrite için / index.php yapmak ya gidiyor olmasıdır bu son nokta için parametreleri nelerdir. Eğer öyleyse o zaman bu denetleyicisi (diyelim / MySection / index.php) size tüm kaynakları kurmak ve bölüm için belirli bir sayfayı görüntülemek için çağrılan gereken tüm şeyler çağırmak olurdu.