CakePHP Cookies
Cookies are the small files sent from a website and it stores the file inside the user system, while the user is browsing on the site. So, in this way, it contains all the information of the user to remember the user's activities or track the website status.
Cookie handling is easy and secure with CakePHP. A CookieComponent is a class used for managing the Cookies in web applications.
Configuration of Cookie
We have to configure Cookie in www\CakePHP3.8\src\Controller\AppController.php for globally access the files. The globally configured data will combine with the top-level configuration, so it will override those parts that are different. To set the global setting of cookies, use the config() method:
In this above picture, we have loaded the Cookie component and then used the config method like this.
$this->Cookie->config('path', '/'); $this->Cookie->;config([ 'expires' => '+10 days', 'httpOnly' => false ]);
To configure a specific key, use the configKey() method:
$this->Cookie->configKey('Data', 'path', '/'); $this->Cookie->configKey('User', [ 'expires' => '+1 days’, 'httpOnly' => true ]);
We can easily create a cookie with CookieComponent class for managing the cookie in CakePHP. By use of this class, we can perform several methods of cookie in CakePHP.
Write Cookie
We can write a cookie by using the write() method. Here is the syntax of the write method.
Cake\Controller\Component\CookieComponent::write(mixed $key, mixed $value = null)
In this method, we have passed two arguments, Cookie variable ($key) and the value of the variable ($value).
Example
$this ->cookie -> write( ‘name’ ,’Amitabh’);
Here name is a key, and Amitabh is a value of the variable ‘name’.
And if we want to pass more than one key and its value then we can use an array in Cookies like:
$this->Cookie->write('App', [ ‘name' => 'sachin', 'age' => (int) 20, 'tutorials' => 'CakePHP' ]);
In the above syntax, App is an array that holds an array index with key such as name, age, and the tutorial. Also, we have declared the value of the key in a cookie.
Read Cookie
We can read cookie by use of read() method. Here is the syntax of read() method.
Cake\Controller\Component\CookieComponent::read(mixed $key = null)
The read method contains one argument, either we can pass a single variable name or an array.
Example
echo $this->Cookie->read (‘name’); // a single variable echo $this->Cookie->read (‘App); // here we passed app as an array
Check Cookie
This Cookie method is used to check whether a Cookie key/path is present or not, and it has a null value in the cookie. We have defined the check method of Cookie:
Cake\Controller\Component\CookieComponent::check($key)
Example
echo $this->Cookie ->check( ‘age’);
Delete Cookie
The delete method is used to remove the cookies from your system. We have defined the delete method here:
Cake\Controller\Component\CookieComponent::delete(mixed $key)
The delete method contains one argument either we can pass a single variable or an array to delete the cookie.
$this->Cookie->delete( ‘App’);
Example:
Create a controller name CookiesController.php file at the src/Controller/ folder of your project. Now write the following code in the controller file.
>?php namespaceApp\Controller; useApp\Controller\AppController; //useCake\Controller\Component\CookieComponent; // We have load cookie in //AppController classCookiesControllerextendsAppController{ publicfunctionwriteCookie() { $this->Cookie->write('App',['name'=>'sachin', 'age'=>(int)20, 'tutorials'=>'CakePHP']); } publicfunctionreadCookie(){ //$cookie_val=$this->Cookie->read('name');// for particular items $cookie_val=$this->Cookie->read('App'); // for array items $this->set( 'cookie_val ', $cookie_val); } publicfunctioncheckCookie(){ $show=$this->Cookie->check ( 'App' ); $this->set('show', $show); } publicfunctiondeleteCookie(){ $this->Cookie->delete( 'App' ); } } ?>
Create a folder Cookies at src/Template and that folder you have to create a write_cookie.ctp file. Now write the following code in your file.
Cookiehas been saved.
Create a folder Cookies at src/Template and within that folder create a check_cookie.ctp file. Now write the following code in your file.
>?php if($show): ?> Thecookieispresent. >?php else: ?> Thecookieisn'tpresent. >?php endif; ?>
Create a folder Cookies at src/Template and in that folder, create a read_cookie.ctp file. Now write the following code in your file.
Thevalueofthecookieis:>?phpprint_r($cookie_val);?>
Create a folder Cookies at src/Template and, in that folder, create a delete_cookie.ctp file. Now write the following code in your file.
Cookiehasbeendeleted.
Now run your code in the localhost like localhost/CakePHP3.8/Cookies/write_cookie.ctp
Then it will produce this output:
Similarly, you can visit the given below url to get the output.
localhost/CakePHP3.8/cookies/ read_cookie.ctp
Then it will produce this output
Similarly, you can visit the given below url to get the output.
localhost/CakePHP3.8/cookies/ check_cookie.ctp
Then it will produce this output
Similarly, you can visit the given below url to get the output.
localhost/CakePHP3.8/cookies/delete_cookie.ctp
Then it will produce this output