Use of multiple APIs

This feature has the experimental status

Multiple API allow you to exchange information between multiple APIs. For example in a typical scenario you would have front-end located at http://example.com/ and an admin back-end located under http://example.com/admin/. Even through they share things such as models, sometimes you might need to make use of one API from another. In our exapmle, we will be attempting to log-in user into the frontend from the back-end.

We would need to assume few things first. The we need to know which "realm" is used for the front-end. Look inside webroot/index.php:

include 'atk4/loader.php'; $api=new Frontend('my_frontend'); $api->main();

my_frontend here defines realm. It is the global prefix for all cookies, sessions, get, post arguments, id's and other things. By using different realms in front-end and back-end we ensure that user logged into front-end won't have access to admin. In our case we do need to initialize front-end from admin, so we add this code into admin/page/su.php<:/p> class page_su extends Page { function init(){ parent::init(); $user = $this->add('Model_User')->loadData($_GET['id']); $frontend = new Frontend('my_frontend'); $frontend->auth->login($user->get('email')); } }

Experimental: This might require you to use addInfo() for the auth() also and you might run into some other bumps. Report your success in the comments.