我最近做了一个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