Commit 28ead3e
committed
This PR was merged into the 7.2 branch.
Discussion
----------
[String] Add `TruncateMode` mode to `truncate` methods
| Q | A
| ------------- | ---
| Branch? | 7.2
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Issues |
| License | MIT
When using truncate we had two behaviors:
```php
u("Lorem ipsum dolor sit amet")->truncate(14, cut: true); // outputs: Lorem ipsum do
u("Lorem ipsum dolor sit amet")->truncate(14, cut: false); // outputs: Lorem ipsum dolor
```
But sometimes, I want the truncate to fit within 14 chars while keeping all complete words, so I changed truncate method to have a new mode "WordBefore" and switch the `cut` parameter to use a new enum so we can choose which mode is better.
Now:
```php
u("Lorem ipsum dolor sit amet")->truncate(14, cut: TruncateMode::Char); // outputs: Lorem ipsum do
u("Lorem ipsum dolor sit amet")->truncate(14, cut: TruncateMode::WordAfter); // outputs: Lorem ipsum dolor
u("Lorem ipsum dolor sit amet")->truncate(14, cut: TruncateMode::WordBefore); // outputs: Lorem ipsum
```
Commits
-------
c3136a0 [String] Add WORD_STRICT mode to truncate method
File tree
5 files changed
+79
-4
lines changed- src/Symfony/Component/String
- Tests
5 files changed
+79
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
605 | 605 | | |
606 | 606 | | |
607 | 607 | | |
608 | | - | |
| 608 | + | |
609 | 609 | | |
610 | 610 | | |
611 | 611 | | |
| |||
619 | 619 | | |
620 | 620 | | |
621 | 621 | | |
622 | | - | |
| 622 | + | |
| 623 | + | |
623 | 624 | | |
624 | 625 | | |
625 | 626 | | |
| |||
629 | 630 | | |
630 | 631 | | |
631 | 632 | | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
632 | 641 | | |
633 | 642 | | |
634 | 643 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
4 | 9 | | |
5 | 10 | | |
6 | 11 | | |
| |||
Lines changed: 13 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
1505 | 1506 | | |
1506 | 1507 | | |
1507 | 1508 | | |
1508 | | - | |
| 1509 | + | |
1509 | 1510 | | |
1510 | 1511 | | |
1511 | 1512 | | |
1512 | 1513 | | |
1513 | 1514 | | |
1514 | 1515 | | |
1515 | | - | |
| 1516 | + | |
1516 | 1517 | | |
1517 | 1518 | | |
1518 | 1519 | | |
1519 | 1520 | | |
1520 | 1521 | | |
| 1522 | + | |
1521 | 1523 | | |
1522 | 1524 | | |
1523 | 1525 | | |
| 1526 | + | |
1524 | 1527 | | |
1525 | 1528 | | |
1526 | 1529 | | |
| |||
1529 | 1532 | | |
1530 | 1533 | | |
1531 | 1534 | | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
1532 | 1543 | | |
1533 | 1544 | | |
1534 | 1545 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
0 commit comments