我最近做了一個cookie類,但不幸的是它並不是真的OOP,因爲我讓這個類做了2個不同的事情。即設置/獲取cookie並存儲te cookie。而OOP意味着每個班級都有自己的操作。所以我決定重寫我的課程,但我無法讓它工作。這是我應該怎麼做的。OOP Cookie類
我做了一個CRUD的接口和一個實現這個接口的類叫做CookieStorage。我也做了一個Cookie類,設置cookie值等,但現在通過創建這兩個類它不工作,因爲我得到這個錯誤:致命錯誤:調用未定義的方法CookieStorage :: getName()在/ Applications/MAMP/htdocs/library/lib/CookieStorage.php 27行
下面你可以找到我的代碼。提前致謝!
<?php
interface StorageInterface {
public function set(Cookie $cookie);
public function get(Cookie $cookie);
public function update(Cookie $cookie);
public function delete(Cookie $cookie);
}
class CookieStorage implements StorageInterface {
/**
* constructor
*/
public function __construct() {
}
/**
* Create cookie.
*/
public function set(Cookie $cookie) {
return setcookie(
$this->getName(),
$this->getValue(),
$this->getTime(),
$this->getPath(),
$this->getDomain(),
$this->getSecure(), true
);
}
/**
* Get cookie.
*/
public function get(Cookie $cookie) {
return $_COOKIE[$this->getName()];
}
/**
* Update cookie.
*/
public function update(Cookie $cookie) {
return $this->update();
}
public function delete(Cookie $cookie) {
return $this->delete();
}
}
?>
'$這 - >的getName(), $這 - >的getValue(), $這 - >的getTime(), $這 - >的getPath(), $這 - > getDomain(), $ this-> getSecure()'這些都沒有定義? – Esailija 2012-07-20 08:15:30
你的班級中沒有getName方法,這就是爲什麼你會得到那個錯誤 – Gntem 2012-07-20 08:15:37
我是否也必須在CookieStorage中定義這個方法? – Reshad 2012-07-20 08:21:13