googleapis / googleapis/google-api-php-client-services

Return $this in setters to allow chaining

Open
#2,319 1 comment 0 reactions 0 assignees View on GitHub
type: feature request
Dominant language
PHP
Stars
1.3k
Forks
320
Avg merge
2h 32m
Merged PRs (30d)
193

Description

Pretty much all the setters in the AnalyticsData lib return `void`, it would be much nicer to return `$this` in all setters to be able to chain them

Example:
https://github.com/googleapis/google-api-php-client-services/blob/main/src/AnalyticsData/RunReportRequest.php

I wanted to write my requests like this
```php
(new AnalyticsData\BatchRunReportsRequest())->setRequests([
(new AnalyticsData\RunReportRequest())
->setDimensions([
new AnalyticsData\Dimension(['name' => 'year']),
new AnalyticsData\Dimension(['name' => 'month']),
new AnalyticsData\Dimension(['name' => 'medium']),
])
->setDimensionFilter(...)
])
```

But without chaining, it becomes

```php
$request1 = new AnalyticsData\RunReportRequest();
$request1->setDimensions([
new AnalyticsData\Dimension(['name' => 'year']),
new AnalyticsData\Dimension(['name' => 'month']),
new AnalyticsData\Dimension(['name' => 'medium']),
]);
$request1->setDimensionFilter(...);
$batch = new AnalyticsData\BatchRunReportsRequest();
$batch->setRequests([$request1]);
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.