File tree Expand file tree Collapse file tree 2 files changed +11
-21
lines changed
Expand file tree Collapse file tree 2 files changed +11
-21
lines changed Original file line number Diff line number Diff line change 1616use BackedEnum ;
1717use League \Uri \Contracts \Conditionable ;
1818use League \Uri \Contracts \FragmentDirective ;
19+ use League \Uri \Contracts \Transformable ;
1920use League \Uri \Contracts \UriComponentInterface ;
2021use League \Uri \Exceptions \SyntaxError ;
2122use SensitiveParameter ;
2930use function str_replace ;
3031use function strpos ;
3132
32- final class Builder implements Conditionable
33+ final class Builder implements Conditionable, Transformable
3334{
3435 private ?string $ scheme = null ;
3536 private ?string $ username = null ;
@@ -206,13 +207,11 @@ public function reset(): self
206207 * Executes the given callback with the current instance
207208 * and returns the current instance.
208209 *
209- * @param callable(self): void $callback
210+ * @param callable(self): self $callback
210211 */
211- public function tap (callable $ callback ): self
212+ public function transform (callable $ callback ): static
212213 {
213- $ callback ($ this );
214-
215- return $ this ;
214+ return $ callback ($ this );
216215 }
217216
218217 public function when (callable |bool $ condition , callable $ onSuccess , ?callable $ onFail = null ): static
Original file line number Diff line number Diff line change @@ -141,28 +141,19 @@ public function test_tap_calls_callback_with_self_and_returns_same_instance(): v
141141 $ builder = new Builder ();
142142
143143 $ called = false ;
144- $ callback = function (Builder $ b ) use (&$ called , $ builder ) {
144+ $ callback = function (Builder $ b ) use (&$ called , $ builder ): Builder {
145145 $ called = true ;
146146 self ::assertSame ($ builder , $ b );
147+
148+ return $ b ->authority ('example.com ' );
147149 };
148150
149- $ result = $ builder ->tap ($ callback );
151+ $ result = $ builder ->transform ($ callback );
150152
151153 self ::assertTrue ($ called );
152154 self ::assertSame ($ builder , $ result );
153- }
154-
155- public function test_tap_allows_builder_mutation (): void
156- {
157- $ builder = (new Builder ())->scheme ('http ' );
158- $ builder ->tap (function (Builder $ b ) {
159- $ b ->host ('example.com ' );
160- });
161-
162- $ uri = $ builder ->build ();
163-
164- self ::assertSame ('example.com ' , $ uri ->getHost ());
165- self ::assertSame ('http ' , $ uri ->getScheme ());
155+ self ::assertSame ('example.com ' , $ builder ->build ()->getHost ());
156+ self ::assertNull ($ builder ->build ()->getScheme ());
166157 }
167158
168159 public function test_authority_with_host_only (): void
You can’t perform that action at this time.
0 commit comments