假设我有像这样的存储库类方法来创建post:
public function create($title, $slug, $custom_slug = '', $meta_keyword, $body, $meta_description, $status, $bla, $bla)
有没有办法以正确的方式避免这种情况?因为我认为如果有很多参数并且不易读,那就不好了。我经常把价值放在错误的地方因为我不记得参数订单。
如果我将参数设置为如下数组:
public function create(array $columns)
但客户端不知道哪些必需参数,哪些不是。
答案 0 :(得分:-1)
通常,您可以通过将参数作为数组传递来解决此问题。或者,您可以将参数设置为公共静态字段,以便可以在方法中访问它们,而无需将它们作为参数传递。
答案 1 :(得分:-1)
你可以创建一个这样的类:
class Post {
protected $title;
protected $body;
protected $slug;
protected $metaKeyword;
protected $metaDescription;
protected $status;
function __construct($title, $body) {
$this->setTitle($title);
$this->setBody($body);
}
public function setTitle($title) {
$this->title = $title;
}
public function setBody($body) {
$this->body = $body;
}
public function setSlug($slug) {
$this->slug = $slug;
}
public function setMetaKeyword($metaKeyword) {
$this->metaKeyword = $metaKeyword;
}
public function setMetaDescription($metaDescription) {
$this->metaDescription = $metaDescription;
}
public function setStatus($status) {
$this->status = $status;
}
public function save() {
// do something here
}
}
$post = new Post('Example', 'This is a body');
$post->setSlug('example-post');
$post->save();