REST tarzı URLS ve PHP

3 Cevap php

Ben REST tarzı URL'LER kullanarak etrafında başımı almak gerçekten zor bir zaman yaşıyorum. Ben bu konuda biraz yardım alabilir miyim? Şu anda şöyle bir sorgu dizesi vardır:

example.com/calendar_expanded?date=1270094400

Ben. Php uzantısı saklıyor bir yeniden mod var. Nasıl yaparım

  1. calendar_expanded/date/1270094400 olur bu emin olun.
  2. Aslında sonra url $_GET değerleri?

Ben bunun arkasında kavramını seviyorum ama bütün bir ay için bir süre karşılamak için günde 16 saat çalışan beynime bir geçiş ücreti alıyor.

Yardımlarınız için teşekkürler.

3 Cevap

Eğer oldukça çok DİNLENME oluşturmak istiyorsanız URL'ler Front Controller tasarım deseni kullanan bir PHP framework kullanmak düşünmelisiniz.

Bu şekilde, her istek çerçevesi tarafından işlenen ve onlar gibi görünmelidir ancak URL'lerinizi tasarım esnek olmasıdır.

Örneğin Symfony kutudan bir sığınakta tasarımını desteklemektedir.

MEZUNLARI sığınakta URL'ler sadece parametreler şekilde sabit olup olmadığını mantıklı ve örneğin, bir blog yazısı başlığı bir kaynak belirtin. Sadece örneğin bir parametre geçmek istiyorum (bir şeyin görünümü yani) bir tablo sıralama kontrol sonra bu sorgu dizesi içine "normal" GET parametresi olarak gitmek gerekir.

Bir takvim içinde gösterilmesi gerektiğini hangi gün kontrol etmek istediğiniz gibi durumda görünüyor. Ben şahsen sadece burada normal bir GET sorgu dizesi kullanabilirsiniz.

Sen $_GET, $_SERVER[ 'REQUEST_URI' ] veya $_SERVER[ 'PATH_INFO' ] değil incelemek gerekir.

$_SERVER[ 'REQUEST_URI' ] will hold this /calendar_expanded/date/1270094400?quertStringParams=1&etc...
$_SERVER[ 'PATH_INFO' ] will hold this /calendar_expanded/date/1270094400

Başka bir deyişle, explode() ve seviyor kullanarak, kendi ayrı bölümler halinde bu değerleri yıkmak zorunda kalacak. Ben gerçek sorgu dize değişkenleri $_GET zaten mevcut olacağından, bir özne olarak $_SERVER[ 'PATH_INFO' ] kullanmanızı öneririz.

Bu sizin için ne arıyorsanız?

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ calendar_expanded.php?url=$1 [QSA,L]
</IfModule>

Bu benim ilk hala yaparsa bilmem ... çıktığında CakePHP yaptığını hatırlıyorum ne olduğunu ...