Я использую CakePhp для создания приложения, которое взаимодействует с API-интерфейсом Linkedin. У меня есть простая страница, которая получает идентификатор члена linkedin в переменной GET и токен аутентификации приложения в переменной сеанса. Контроллер страницы должен выполнить вызов cURL к API и установить переменную $ connection, завершить код контроллера и отобразить * .CTP.
Однако, что происходит. Если контроллер выполняется один раз без проблем, то без проблем запускает файл * .CTP. Затем выполняет контроллер СНОВА на этот раз не успешно извлекая данные из API-интерфейса linkedin, а затем выполняет файл * .CTP СНОВА, создавая все виды сообщений об ошибках в журнале отладки. Странно то, что, хотя журнал отладки показывает, что CAKE не может установить переменную $ connection, данные, основанные на этой переменной, отображаются правильно при отображении страницы.
Я использовал флаг Debugger :: Log ('xxx'), чтобы указать, когда выполняются начало и конец контроллера и * .CTP. Вот журнал отладки для ОДНОГО обновления на странице
2011-11-20 04:16:23 Debug: "START controller function"
2011-11-20 04:16:24 Debug: "End controller function"
2011-11-20 04:16:24 Debug: "START the .ctp"
2011-11-20 04:16:24 Debug: "END the .ctp"
2011-11-20 04:16:25 Debug: "START controller function"
2011-11-20 04:16:26 Debug: Notice (8): Undefined variable: connection in [C:\wamp\www\ta\app\controllers\reviews_controller.php, line 100]
2011-11-20 04:16:26 Debug: "End controller function"
2011-11-20 04:16:26 Debug: "START the .ctp"
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 7]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 36]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 41]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 43]
2011-11-20 04:16:26 Debug: "END the .ctp"
Страница действительно отображается нормально. Я просто пытаюсь понять, почему CAKE запускает файл * .CTP дважды (он не имеет перенаправлений) и создает все уведомления об ошибках в файле отладки. Я думал, что Cake запускает функцию контроллера, и только если контроллер достигает конца, запустите файл * .CTP один раз? Кто-нибудь знает, что может происходить?
Спасибо!