Mengendalikan Kuki dengan CakePHP adalah mudah dan selamat. Terdapat kelas Pengurusan Kuki CakePHPComponent yang digunakan untuk menguruskan Pengurusan Kuki CakePHP. Kelas menyediakan beberapa kaedah untuk bekerja dengan Kuki.
Untuk menggunakan kuki, tambahkan 2 kelas ini pada pengawal anda −
use Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHP; use Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHPCollection;
Objek kuki perlu dibuat terlebih dahulu untuk mendaftar kuki.
$cookie = new Pengurusan Kuki CakePHP(name,value,expiration time,path,domain);
Nama dan nilai adalah wajib dan yang lain adalah param pilihan.
Berikut ialah sintaks untuk menulis kuki.
$cookie = new Pengurusan Kuki CakePHP(name,value,expiration time,path,domain);
Kuki yang dibuat perlu ditambahkan pada kukiCollection seperti yang ditunjukkan di bawah −
$cookie = new Pengurusan Kuki CakePHP('name','XYZ'); $cookies = new Pengurusan Kuki CakePHPCollection([$cookie]);
Jika objek pengumpulan kuki sudah dibuat, kuki yang lain boleh ditambah seperti yang ditunjukkan di bawah −
$cookies = $cookies->add($cookie);
Untuk membaca kuki gunakan kaedah get() daripada cookiecollection.
Sintaks untuk kuki baca adalah seperti berikut −
Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHPCollection::get($name)
Ini akan mengembalikan anda cookiecollection Interface, untuk mendapatkan nilai cookie, anda perlu memanggil kaedah getValue().
Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHPCollection Interface::getValue()
Kaedah has() daripada cookieCollection akan memberitahu anda, jika cookie itu ada atau tidak.
Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHPCollection::has($name)
echo $isPresent = $this->cookies->has('name');
Kaedah move() digunakan untuk memadamkan kuki. Berikut ialah sintaks kaedah remove().
Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHPCollection::remove($name)
Kaedah remove() akan mengambil satu hujah, nama pembolehubah kuki ($nama) untuk dipadamkan.
$test = $this->cookies->remove('name');
Buat perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam program berikut.
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('cookie/testcookies',['controller'=>'Pengurusan Kuki CakePHPs','action'=>'testPengurusan Kuki CakePHPs']); $builder->fallbacks(); });
Buat fail Pengurusan Kuki CakePHPsController.php di src/Controller/Pengurusan Kuki CakePHPsController.php. Salin kod berikut dalam fail pengawal.
src/Controller/Pengurusan Kuki CakePHPs/Pengurusan Kuki CakePHPsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHP; use Cake\Http\Pengurusan Kuki CakePHP\Pengurusan Kuki CakePHPCollection; class Pengurusan Kuki CakePHPsController extends AppController{ public $cookies; public function testPengurusan Kuki CakePHPs() { $cookie = new Pengurusan Kuki CakePHP('name','XYZ'); $this->cookies = new Pengurusan Kuki CakePHPCollection([$cookie]); $cookie_val = $this->cookies->get('name'); $this->set('cookie_val',$cookie_val->getValue()); $isPresent = $this->cookies->has('name'); $this->set('isPresent',$isPresent); $this->set('count', $this->cookies->count()); $test = $this->cookies->remove('name'); $this->set('count_afterdelete', $test->count()); } } ?>
Buat direktori Kuki di src/Templat dan di bawah direktori itu cipta fail Lihat bernama test_cookies.php. Salin mengikuti kod dalam fail itu.
src/Template/Pengurusan Kuki CakePHP/test_cookies.php
The value of the cookie is: <?php echo $cookie_val; ?> <br> <?php if($isPresent): ?> The cookie is present. <?php else: ?> The cookie isn't present. <?php endif; ?> <br> <?php echo "The count of cookie before delete is :" .$count; ?> <br> <?php echo "The count of cookie after delete is :" .$count_afterdelete; ?>
Laksanakan contoh di atas dengan melawati URL berikut − http://localhost/cakephp4/cookie/testcookies
Atas ialah kandungan terperinci Pengurusan Kuki CakePHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!