After the user has logged in I want to be able to save the userId for later use within the application. The only place in the application I retrieve the username is from the login form, through the login controller. However, that structure in my application is that the only thing that is passed to my master controller from the login controller is HTML.
Of course I could include the userId in a hidden field inside the HTML that’s passed back to the master controller, but that seems too hacky.
So, is there a way that I can save a value (in this case the username) so that it’s accessible from other classes/namespaces/functions whatever? I have read a bit about ‘global’, but haven’t managed to get it work in my application.
from LoginController.php:
if ($loginView->TriedToLogin()){
$loginUsername = $loginView->GetUserName(); //Retrieved from form
$loginPassword = $loginView->GetPassword();
}
Upon login, you need to store your user token in a session.
See: https://www.php.net/manual/en/features.sessions.php
Store user when logging in:
You can then write a class/function that utilises the session to check their login status and fetch their details when required.
Like so:
Then use anywhere in your application:
Also, for great information on how to build an MVC framework, check out "Create your own framework… on top of the Symfony2 Components".