PHP OOP ve AJAX: Sınıf serverside işlemek nasıl?

2 Cevap php

Ben OOP benim standart PHP proje dönüştürme üzerinde çalışıyorum ama AJAX PHP sınıfları ile çağrılarını işlemek için nasıl bir duvara koştu. Ben şimdi yapıyorum şekilde memnun değilim. Ben bir AJAX çağrısı benim TillUI.php dosyadan dediğimiz bir TillAjax.php dosyası var.

TillAjax.php dosyasında ben ajax çağrısından geçirilen bilgi almak için bunu.

$till = new Till();
if(isset($_POST['data']))
    $till->doStuff($_POST['data']);

Ben bu OOP kalıntıları düşünüyorum.

Ben sonrası değer için kontrol etmek zorunda kalmadan bir denetleyicisi belirli bir eylemi çağırmak için ASP.NET MVC ile çalıştı ve burada olası var. Yani yukarıdaki sorunu çözmek için daha akıllı bir PHP yol olup olmadığını bilmek istiyorum?

2 Cevap

Bunun için kullandığınız yöntem Ajax sınıf sahip olmaktır.

'Sap' statik bir sınıf yöntemi adını, bu yüzden belki de 'Till :: Süreci' içeren php dosya aramaları Ajax::Process($_GET['handle']),. Ajax sınıfı izin fonksiyonları (Eğer ajax çağrılacak izin vermiş olursunuz yani fonksiyonları) listesine karşı işlevi kontrol eder, ve sonra call_user_func_array benim kod olarak $ _POST içeriğini kullanır (işlevini çağırmak için kullandığı işlevine geçmek için argümanlar). Bu işlevin dönüş otomatik json olarak kodlanmış ve müşteriye çıkarılmaktadır.

Bu hedef php dosyası gibi görünüyor demektir:

<?php

//File: ajax.php

include ("Ajax.php");

Ajax::Process($_GET['handle']);

?>

Hangi ben oldukça basit olduğunu düşünüyorum.

Sonra (jquery) bu gibi görünüyor javascript olabilir:

$.get('ajax.php?handle=Till::Process', {}, function(result) {
  //called on page response
});

Öyleyse Bugüne kadar :: Süreci php yönteminden döndürülen ne olursa olsun veri içeriyor sonuçlanabilir.

Eğer, CakePHP, Kohana, vb gibi CodeIgniter gibi bir PHP MVC framework kullanarak düşündünüz mü? Bunlar belirli denetleyicisi yöntemleri için size rota istekleri izin verir. Bu çerçevelerin birine göç sizin için bir seçenek ise bir daha temiz bir çözüm olacaktır.