2012-09-15 10 views
5

Znam ten post wcześniej: Generally splitting admin and web app into two entitiesJak zarządzać uruchomieniem sesji w CakePHP podczas budowania API REST?

zasadzie istotą jest to, że możemy połączyć bok API rzeczy i przednią stronę internetową rzeczy razem w jednej aplikacji CakePHP. Jednak, jak wiesz, REST jest bezpaństwowcem i nie ma powodu, aby oczekiwać, że klient zachowa plik cookie lub coś podobnego. Czy wiesz, kiedy dokładnie funkcja session_start wyzwala w CakePHP? Naprawdę chcę uniknąć uruchomionego session_start po trafieniu moich punktów końcowych interfejsu API. Potrzebuję jednak sesji, aby zacząć, gdy trafią moje regularne strony internetowe.

+0

patrz niżej URL Myślę, że to bardzo pomaga w całości ty. ** RESTful tworzenie aplikacji internetowych w 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 –

Odpowiedz

0

session_start() zostaje wyzwolony w CORE\Cake\Model\Datasource\CakeSession.php. jeśli nie chcesz wywoływać funkcji session_start(), pamiętaj, aby nie uwzględniać komponentu sesji ani pomocnika w kontrolerze. Pamiętaj również, aby nie wywoływać sesji ani nie używać komponentu Auth, ponieważ w niektórych przypadkach może również automagicznie wyzwalać session_start().

1

Na ciasto v2 +, w ogóle nie nie wykonaj dowolną z następujących czynności:

  • wykonywanie połączeń do CakeSession komponentu sesyjnego
  • Załaduj lub użyj pomocnik sesji
  • usunąć $ this-> Sesja- > Flash() z układami
  • nie Component korzystają auth

Jeśli jesteś stil Rozpoczęcie sesji (można powiedzieć, pobierając plik cookie w nagłówku odpowiedzi), można łatwo wyśledzić, kto rozpoczyna sesję. Wystarczy dodać następujące linie do lib/Cake/Model/Datasource/CakeSession.php w metodzie start():

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

Złóż wniosek i zobaczysz stos wywołań kto winowajcą był :)

+0

Świetna wskazówka dotycząca debug_print_backtrace() w CakeSession :: start - to wielka pomoc! – BeesonBison