Не уверен, что я поступаю наилучшим образом, я пытаюсь реализовать ZENDAMF с codeigniter. Одна из проблем, с которыми я столкнулся, заключается в том, что я хочу иметь возможность проверять, вошел ли пользователь в систему, прежде чем разрешить ему делать какие-либо запросы к сервикам за шлюзом zendamf. Я задал предыдущий вопрос о том, как заставить его выполнить проверку в конструкции, но я обнаружил, что это невозможно.
Моей следующей мыслью было создание шлюза в качестве контроллера таким образом, чтобы я мог получить доступ к своей библиотеке аутентификации до того, как запрос был отправлен на сервер zend amf. Но когда я обращаюсь к службе, она не распознает ни один из методов CodeIgniter.
В данный момент я не выполняю проверку входа в систему, так как хочу, чтобы сначала работал сервер amf, поэтому я выбрал пример, чтобы попытаться вернуть мои UserDetails.
вот мой контроллер gateway.php
<?php
// Set up debug
class Gateway extends CI_Controller
{
function __construct()
{
parent::__construct();
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", "on");
ini_set("include_path",
ini_get('include_path') . ':'
. '/Applications/MAMP/htdocs/app/application/libraries/');
require_once("Zend/Amf/Server.php");
// Start Server
$server = new Zend_Amf_Server();
// Zend_Amf_Server require.
// Require the ZendAmfServiceBrowser class
require_once("Zend/browser/ZendAmfServiceBrowser.php");
// Class requires.
require_once("services/Testservice.php");
//require_once( "services/ReturnTests.php" );
// Register Demo Classes
$server->setClass("Testservice");
//$server->setClass( "ReturnTests" );
//$server->setResponse('test');
// Add the ZamfBrowser service class so ZamfBrowser can retrieve method information.
$server->setClass("ZendAmfServiceBrowser");
// Set a reference to the Zend_Amf_Server object so ZendAmfServiceBrowser class can retrieve method information.
ZendAmfServiceBrowser::$ZEND_AMF_SERVER = $server;
$server->setProduction(false);
// Handle ZendAMF request
echo ($server->handle());
redirect(base_url().'Gateway');
}
}
а это мой тестсервис
<?php
class Testservice extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function UserDetails()
{
$this->load->model('users_model');
// Grab user info
$user_id = 3;//$this->session->userdata('user_id');
$this->user = $this->users_model->get_user_by_id($user_id);
$this->data['user'] = $this->user;
return $this->data;
}
}
когда я реализую все это, я получаю следующий ответ:
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined property: Testservice::$users_model</p>
<p>Filename: services/Testservice.php</p>
<p>Line Number: 90</p>
Если бы я расширял CI_Controller, я бы хотел, чтобы он позволил мне получить доступ ко всем моим моделям.
Любые идеи, которые я сейчас действительно озадачен.
Заранее спасибо