在以下实例中,如下所示?
这是我们的基类
<?php
class baseService
{
public function __construct()
{
//constructor code
}
public function handleRawRequest($_SERVER, $_GET, $_POST)
{
$this->handleRequest($url, $method, $parameters, $requestBody, $accept);
}
public function handleRequest($url, $method, $parameters, $requestBody, $accept)
{
switch($method)
{
case 'GET':
$this->performGet($url, $parameters, $requestBody, $accept);
break;
default:
$this->notImplementedResponse();
}
}
public function performGet($url, $parameters, $requestBody, $accept)
{
$this->methodNotAllowedResponse();
}
protected function methodNotAllowedResponse()
{
// out put some sort of 405 (Method Not Allowed)
}
}
?>
我们将此扩展到特定服务以提供某些功能
<?php
require "baseService.php";
class betterService extends baseService
{
public function __construct()
{
// stuff
}
public function performGet($url, $parameters, $requestBody, $accept)
{
//do some stuff
}
}
?>
然后使用另一个php文件,我们创建了一个更好的服务,并发送一些请求,如:
<?php
require "NameRestService.php";
$service = new NameRestService();
$service->handleRawRequest($_SERVER, $_GET, $_POST);
?>
我们可以做一些事情还是返回的方法不允许消息? 如果它确实是第二个如何改变它来做事?
答案 0 :(得分:-1)
用self ::替换$ this来从调用类中执行该方法。
self::performGet(...