Add daily email for 2024-05-03
Don't add boolean arguments
This commit is contained in:
parent
e309e4fe33
commit
e3b6a8feec
38
source/_daily_emails/2024-05-03.md
Normal file
38
source/_daily_emails/2024-05-03.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
title: Don't add boolean arguments
|
||||
date: 2024-05-03
|
||||
permalink: archive/2024/05/03/dont-add-boolean-arguments
|
||||
tags:
|
||||
- software-development
|
||||
- drupal
|
||||
- php
|
||||
cta: ~
|
||||
snippet: |
|
||||
Don't add boolean arguments to your methods.
|
||||
---
|
||||
|
||||
A convention I like from the Laravel framework is to avoid adding boolean arguments to methods.
|
||||
|
||||
For example, if I have this function:
|
||||
|
||||
```php
|
||||
public function getPosts() { ... }
|
||||
```
|
||||
If I wanted to only get published posts, one way would be to add a boolean argument:
|
||||
|
||||
```php
|
||||
public function getPosts(boolean $onlyPublished) { ... }
|
||||
```
|
||||
|
||||
Then, I'd need to use that within the method body to add another condition (this is referred to as control coupling, where one method affects another).
|
||||
|
||||
The non-boolean approach would be to create a separate method with its own distinct name.
|
||||
|
||||
For example, `getPosts()` could be named `getAllPosts()` and there could be a separate `getPublishedPosts()` method for only getting published posts:
|
||||
|
||||
```php
|
||||
public function getAllPosts() { ... }
|
||||
|
||||
public function getPublishedPosts() { ... }
|
||||
```
|
||||
Whilst we have two methods now instead of one, it's much clearer what each does and there aren't any random `true` or `false`s wherever the method is used.
|
Loading…
Reference in a new issue