php - php中api的类属性可见性
问题描述
我有具有私有属性的类 Task 和一些 getter/setter
class Task
{
private $id;
private $title;
private $done;
private $user_id;
private $parent_id;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param mixed $id
*
* @return Task
*/
public function setId($id): Task
{
$this->id = $id;
return $this;
}
/**
* @return mixed
*/
public function getTitle(): string
{
return $this->title;
}
/**
* @param mixed $title
*
* @return Task
*/
public function setTitle($title):Task
{
$this->title = $title;
return $this;
}
/**
* @return mixed
*/
public function getDone(): bool
{
return $this->done;
}
/**
* @param mixed $done
*
* @return Task
*/
public function setDone($done):Task
{
$this->done = $done;
return $this;
}
/**
* @return mixed
*/
public function getUserId(): string
{
return $this->user_id;
}
/**
* @param mixed $done
*
* @return Task
*/
public function setUserId($user_id):Task
{
$this->user_id = $user_id;
return $this;
}
/**
* @return mixed
*/
public function getParentId(): string
{
return $this->parent_id;
}
/**
* @param mixed $done
*
* @return Task
*/
public function setParentId($parent_id):Task
{
$this->parent_id = $parent_id;
return $this;
}
}
而且我想公开所有这些属性(我正在尝试制作一个api)这里以此类的用法为例
public function index()
{
$taskManager = new TaskManager();
$tasks = $taskManager->selectWhere('parent_id IS NULL');
foreach ($tasks as $key => $task){
$taskId = $task->getId();
$subtask = $taskManager->selectWhere("parent_id = $taskId");
$tasks[$key]->subtasks = $subtask;
}
echo '<pre>';
var_dump($tasks);
echo '</pre>';
header('HTTP/1.1 200 Created');
header('Content-Type:application/json');
return json_encode($tasks->getDataForApi());
}
我正在使用邮递员来测试我的 api,如果我在作品中公开所有属性,但我认为这不是一个好方法我应该在我的类 Task 中公开所有这些属性吗?还是有其他解决方案?
解决方案
推荐阅读
- x509certificate - 获取当前导入证书的指纹
- python-3.x - gensim.models.FatText.wv.wmdistance 如何计算两个文档之间的距离?
- node.js - 使用或过滤关键字
- snowflake-cloud-data-platform - 雪花中的 SNOWPIPE 是否 100% 可靠?
- websphere-portal - Websphere 门户服务器 - 通过 WAS 控制台访问门户管理员
- javascript - 如何在javascript中获取html body标签的所有数据以结束body标签?
- python - Python 在选举中计算选票并将分数与名称结合 [列表]
- c# - 带有 EntityFramework 异常的 SQLite:无法打开登录请求的数据库
- javascript - 在 Firefox 中使用 Fetch API 接收流数据
- python - 带有 dict 的 Cython 与 python 相同