Büyük bir sitede AJAX işleyicileri düzenlemek nasıl?

5 Cevap php

Basit bir soru ... (benim sitesi kurmak için bir MVC yapısı kullanıyorum onun oldukça geniş, bu bakım ile yardımcı olur böylece. Şimdi JavaScript / AJAX dostu kullanıcılar için bir şeyler çeki düzen vermek için bir kaç eğlenceli AJAX fonksiyonları entegre başlıyorum.

Ben örgüt hakkında çok anal olduğum için, ben, mantıklı, güvenli ve (umarım) ayrı bir şekilde benim ajax PHP işleyicileri saklamak istiyorum.

Sen nasıl organize? En iyi uygulama var mı?

5 Cevap

Benim için en iyi çözüm sayfası oluşturma ve ajax taleplerini tutan bir index.php ön denetleyicisi olması, ve sayfaları, sizin için daha çiftleşmiş ve modül yeniden yükleme ajax şeyler oluşturmak aynı dosyaları var daha.

Bu her şeyi kolaylaştırır ve birleşik bir yapıya sahip.

Mine _ajaxHandlers, bu klasör gibi dosyaları içeren bir belirtilen klasörde depolanır updatePageList.php, deletePage.php, etc).

Ben de ajax kavramı :) dosyalarını işleme / saklanması da bana göre appriciated arandığı için herhangi bir öneriniz için relativly yeni olduğum için bunu yapmak için en iyi yol olduğundan emin değilim.

Ben onların amacına göre sınıflandırılmaktadır alfabetik listelenmiş klasörleri gibi çünkü dirname de çizgi olduğunu. Benim yapıda foldernames gördüğü systemdirs vardır vurguladı.

I do the same as well, previously I used to store ajax handlers with ajax- prefix like

ajax-updatestatus.php
ajax-managemessages.php

ama son zamanlarda yeni bir klasör kullanarak dışarı taşındı

Hiçbir iyi uygulamalar, ve bu işler hızla teh denetleyici yapının dışında tek dosyaların sürü çığrından çıkmak PHP projelerinde yerlerden biridir. Bu bina uygulamaları onun giderek daha yaygın bir yol olarak, bu alanda herhangi bir tavsiye olmadığını görmek için çerçeve belgeleri kontrol.

Ben bu vahşi ele gördüğüm en iyi yolu, MVC başka bir istek gibi bir ajax isteği tedavi etmektir. İsteğiniz için bir denetleyicisi eylem oluşturun. Proje / kişisel tercih boyutuna bağlı olarak, ayrı mantıksal ajax istekleri için denetleyicileri veya grup mevcut kontrolörleri ile ajax eylemleri, (isteğe bağlı eylem isme "ajax" önek veya sonek vererek) oluşturabilirsiniz

class IndexController extends BaseMvcController{
    public function indexAction(){}

    public function ajaxuserinfoAction(){}
}

/ / Veya

class AjaxController extends BaseMvcController{
    public function userinfoAction(){}
}

Yani hala isteği görünümü bölümünü nasıl işleneceğini bırakır. Ben stdClass nesneleri oluşturmak ve daha sonra header('Content-Type: application/json'); ile echo json_encode($object); kullanarak büyük bir hayranı oldum.

MVC framework sitenizin düzenini bastırmak destekliyorsa, size görünümlerde tepki çıkışı inşa edebilirsiniz. Eğer değilse, bir yerde bu gibi basit bir yardımcı işlevi ekleyerek gibi iyi çalışacaktır

protected function outputJsonForAjax($object)
{
    header('Content-Type: application/json');
    echo json_encode($object); 
    exit;
}

Her ajax çağrısı (bunlardan bir sürü varsa, bir şekilde belgelemek gerekir) bir kimliği vardır ve tüm işlemcileri büyük bir eşek anahtarı durumunda olan bir dosyada loop.Or Hadi, büyük bir dosya olabilir eğer belki düzenlemek nasıl birkaç dosyaları onları - id 3001, 3002, 3003 formu 4001 400N böylece düzen sistemi gidip formHandler.php id gidin gönderir.