เตรียม model (+ db) สำหรับ AuthComponent ใน CakePHP 1.2.x
ก่อนที่จะใช้ AuthComponent ได้ก็ต้องมีการเตรียมการสร้าง database และ model กันนิดๆ หน่อยๆ หลังจากติดตั้ง CakePHP เรียบร้อยแล้ว. นอกจากนั้นเพื่อให้การทดลองเป็นได้โดยสะดวกผมคิดว่าควรจะสร้าง view กับ controller ง่ายๆ ไว้ใช้ในทดลองก่อน. จากนั้นก็สร้าง user table ผ่านทาง CakeSchema. แล้วก็ต่อด้วยสร้าง table ของ acl (access control list) โดยเข้าไปใน folder: cake/console แล้วสั่ง ./cake schema run create DbAcl แล้วตามด้วยการกด y ไปเรื่อยๆ เพื่อลบ table เก่าถ้ามี แล้วสร้างใหม่. ต่อด้วยการสร้าง model ของ user ใน app/models ในไฟล์ user.php:
< ?php
class User extends AppModel {
}
?>
ต่อจากนั้นก็ add user เข้าไปสักคนเพื่อเป็นการทดลอง เพื่อความสะดวกในการ add user ผมก็สร้าง CakeShell ไว้ใน folder: app/vendors/shells ชื่อไฟล์ว่า user.php:
< ?php
uses ('controller'.DS.'components'.DS.'auth');
class UserShell extends Shell {
var $uses = array("User");
function add() {
$auth = new AuthComponent();
$username = $this->args[0];
$password = $auth->password($this->args[1]);
$data = array("User" =>
array("username" => $username,
"password" => $password));
if($this->User->save($data)) {
print "Success: $username was added\n";
} else {
print "Fail\n";
}
}
}
จากนั้นก็เข้าไปใน folder: cake/console แล้วก็เรียก ./cake user add myusername mypassword
อาจจะสั้นๆ ไปหน่อย นอกจากนั้นก็ปล่อยให้ CakePHP จัดการ.