วันจันทร์ที่ 20 พฤษภาคม พ.ศ. 2556

Laravel::Session & Cookie


Cookies
Cookie ของ laravel มีข้อควรระวังในการใช้คือ อย่างแรก,cookies จะเก็บค่า signature hash ไว้ด้วยเพื่อป้องกันการแก้ไขโดย client. อย่างที่สอง cookies เมื่อถูกสร้างแล้วจะไม่ถูกส่งไปที่บราวเซอร์โดยทันทีจะรอเมื่อสิ้นสุดคำร้องขอก่อนนั้นแปลว่า เราจะไม่สามารถเรียกใช้มันได้ทันที
รับค่า Cookies:

$name = Cookie::get('name');
ให้ส่งคืน Fred ถ้าค่า cookies ไม่มี:
$name = Cookie::get('name', 'Fred');
ตั้งเวลาให้ cookies มีอายุ 60 นาที:
Cookie::put('name', 'Fred', 60);
ให้ cookies มีอายุ 5 ปี:
Cookie::forever('name', 'Fred');
ลบ cookie:
Cookie::forget('name');

SESSION CONFIGURATION ( การตั้งค่า Session)
ใน laravel มี Seession 6 ประเภทคือ
·        คู่กับ  Cookie
·        เก็บใน File System
·        เก็บใน Database
·        ใช้ Memcached
·        ใช้ Redis
·        เก็บใน Memory (Arrays)

Cookie Sessions
Cookie based sessions มีขนาดล็กแค่ 4 kb และเข้ารหัสโดย AES 256 ต้องไปตั่งค่าใน  application/config/session.php ก่อน
'driver' => 'cookie'
File System Sessions
การตั้งค่าให้ Seesion ใช้ระบบ Files System:
'driver' => 'file'
Note: File system sessions ถูกเก็บใน storage/sessions มั่นใจว่ามีโฟลเดอร์นี้อยู่.
Database Sessions
เราต้องสร้างตารางมาเก็บ Session ก่อน โดยใช้คำสั่ง  artisan
php artisan session:table
ถ้าจะคิวรี่เองก็มีคำสั่งให้ข้างล่างนี้ครับ
MySQL
CREATE TABLE `sessions` (
     `id` VARCHAR(40) NOT NULL,
     `last_activity` INT(10) NOT NULL,
     `data` TEXT NOT NULL,
     PRIMARY KEY (`id`)
);

ถ้าเราต้องการเปลี่ยนชื่อตารางที่ใช้เก็บ session ไปแก้ที่ application/config/session.php :
'table' => 'sessions'
ลืมไป ต้องไปตั้งค่าที่ application/config/session.php ก่อน:
'driver' => 'database'
Memcached Sessions
ไปตั้งค่าที่เดิมเบย application/config/session.php file:
'driver' => 'memcached'
Redis Sessions
ก่อนจะใช้ได้ต้องไปตั้งค่าต่างหากก่อนนะครับ ทวิธีการอยู่ที่นี่ configure your Redis servers.
ถ้าเซตแล้วก็เข้าไปตั้งค่าที่เดิม application/config/session.php file:
'driver' => 'redis'
In-Memory Sessions
"memory" session จะเก็บ ค่า seesion ไว้ในคำร้องขอล่าสุด เหมาะสำหรับการ test เท่านั้น เพราะค่าจะไม่ถูกเขียนลง hardisk .
 บทหน้าข้ามไปพูดเรื่อง การจัดการ Html กับ Form กันครับ 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น