PHP ile dinlendirici bir API ve web sitesi oluşturma

5 Cevap php

Ben bir sığınakta API eklemek isterim ki daha önce yazdığı bir PHP uygulama var. Ben de sistemde ürün almak için çağrı URL'leri açısından daha bir Rails uygulaması gibi davranmaya site genişletmek istiyorum.

Klasörler ve dizin sayfaları her türlü yaratmadan bir Railsy şekilde PHP öğeleri aramak için herhangi bir yolu var mı? PHP bilgi GET sorgu etiketini kullanarak olmadan nasıl arayabilirim?

5 Cevap

Eğer bir. Htaccess dosyası ile oldukça kolay yapabilirsiniz gidiyor mod_rewrite'ı çeşit varsa.

Eğer böyle bir şey varsa:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Bu erişmeye çalıştığınız dosya zaten var olmadığını kontrol edecektir. (Bunu http://yoursite.com/hello.html üzerinden erişmek için hala insanlara gerekli bir dosya hello.html vardı)

Dosya zaten mevcut değilse o zaman url değişkeninde saklanan URL kalanı ile index.php dosyası yüklenemedi.

Bu, bu http://yoursite.com/pages/edit/24 gibi bir şey arayabilir ve url değişkeni içinde index.php ile / pages/edit/24 yük anlamına gelir.

Yani başlamış ve klasörler ve dizin sayfaları, sadece mod_rewrite'ı. Htaccess dosyası ve ne gerek yüklemek için kullanılacak bir index.php her türlü ihtiyacınız olmayacak.

Ayrıca yerleşik REST desteği ile PHP çerçeveler birini, örneğin, CakePHP kullanmak için düşünebilirsiniz.

Pascal MARTIN respopnse Hızlı not: Zend_Rest_Server REST ile kesinlikle bir ilgisi var. Onlar sadece biraz daha güzel URL'ler ile RPC yapmak ve daha trendy böylece DİNLENME diyoruz.

Eğer kalan yapmak isterseniz ben henüz PHP için iyi bir DİNLENME kütüphane bulamadı gibi, biraz daha işi kendiniz yapmanız gerekir. Yani $_SERVER['REQUEST_METHOD'] adlandırılan kaynak, vs ile ne karar inceleyin.

Aradığınız tasarım deseni, bir front controller denir.

En basit haliyle size gelen istekleri geçmek ve tek bir php script onu geçmek için mod_rewrite kullanımı. Url sonra düzenli ifadeler ile çözümlenir ve farklı tepki eylemleri eşleştirilir. Ancak varolan bir uygulama haritalama kapsamlı yeniden yazılmasında gerekebilir.

Bu kavram ile oynamak isterseniz ben Silex microframework'umuzda öneririz.