2012-09-15 3 views
5

Ich habe diesen Beitrag früher lesen: Generally splitting admin and web app into two entitiesWie wird der Sitzungsstart in CakePHP beim Erstellen einer REST-API verwaltet?

Grundsätzlich ist der Kern von ihm ist, dass wir die api Seite der Dinge und die Web-Front-Seite der Dinge zusammen in einer CakePHP App kombinieren. Wie Sie jedoch wissen, ist REST zustandslos und es besteht kein Grund zu erwarten, dass der Client einen Cookie oder Ähnliches behält. Weißt du, wann genau die Funktion session_start in CakePHP ausgelöst wird? Ich möchte den laufenden session_start wirklich vermeiden, wenn meine API-Endpunkte getroffen werden. Allerdings brauche ich eine Sitzung, um zu starten, wenn meine regulären Webfronten getroffen werden.

+0

unten URL anzeigen Ich denke, es ist sehr voll helfen Sie. ** RESTful Web-Anwendungsentwicklung in CakePHP ** http://bakery.cakephp.org/articles/rightwayindia/2010/01/11/restful-web-application-development-in-cakephp http://book.cakephp.org /1.3/view/924/The-Configuration-Class –

Antwort

0

session_start() wird ausgelöst in CORE\Cake\Model\Datasource\CakeSession.php. Wenn Sie den Befehl session_start() nicht auslösen möchten, müssen Sie die Sitzungskomponente oder den Helfer nicht in Ihren Controller einbeziehen. Achten Sie auch darauf, dass Sie die Sitzung nicht aufrufen und die Auth-Komponente nicht verwenden, da sie in einigen Fällen auch automatisch session_start() auslösen kann.

1

Für Kuchen v2 + in der Regel keine keine der folgenden Aktionen ausführen:

  • telefonieren
  • Lastsitzungskomponente CakeSession oder Session Helfer verwenden
  • $ this- entfernen> Session- > Flash() von Layouts
  • Verwendung auth Komponente

nicht Wenn Sie stil sind Wenn Sitzungen gestartet werden (dies kann durch einen Cookie im Antwortheader ermittelt werden), ist es einfach herauszufinden, wer die Sitzung startet. Fügen Sie einfach die folgenden Zeilen lib/Cake/Model/Datasource/CakeSession.php im start() Methode:

public static function start() { 
    debug_print_backtrace(); 
    exit(); 
    ... 
} 

eine Anfrage und Sie werden einen Anruf Stapel sehen, wer der Täter war :)

+0

Toller Tipp über die debug_print_backtrace() in CakeSession :: start - das ist eine große Hilfe! – BeesonBison

Verwandte Themen