|
1 | 1 | # Changelog |
2 | 2 |
|
3 | 3 | ## [4.x - Unreleased] - 2024-xx-xx |
| 4 | + |
| 5 | +## [4.0.0] - 2023-12-04 |
4 | 6 | ### Added |
5 | 7 | - Added new enumeration `Rotation` with values `Never`, `KeepFlat` and `BestFit` |
6 | 8 | - Added new `getAllowedRotation()` method to the `Item` interface to replace `getKeepFlat()`. This should return |
|
11 | 13 | - Added `throwOnUnpackableItem()` to `Packer` to control if an exception is thrown (or not) if an unpackable item is |
12 | 14 | found (defaults to true, consistent with previous behaviour) |
13 | 15 | - Added `getUnpackedItems()` to `Packer` to retrieve the list of items that could not be packed (only applicable if |
14 | | - exceptions are disabled). |
| 16 | + exceptions are disabled) |
| 17 | + - `PackedBox` now has readonly public properties `->box` and `->item` |
| 18 | + - `PackedItem` now has readonly public properties `->item`, `->x`, `->y`, `->z`, `->width`, `->length`, `->depth` |
15 | 19 |
|
16 | 20 | ### Changed |
17 | 21 | - Minimum PHP version is now 8.2 |
18 | 22 | - Exceptions are now in the `DVDoug\BoxPacker\Exception` namespace (previously `DVDoug\BoxPacker`) |
19 | | - - The signature of the `canBePacked` method on the `ConstrainedPlacementItem` interface has been changed to replace the |
| 23 | + - The signature of the `->canBePacked` method on the `ConstrainedPlacementItem` interface has been changed to replace the |
20 | 24 | first two arguments(`Box $box`, `PackedItemList $alreadyPackedItems`) with `PackedBox $packedBox`. This allows |
21 | 25 | callbacks to make use of the helper methods provided on `PackedBox`. Access to the box and items can be done via |
22 | | - `$packedBox->getBox()` and `$packedBox->getItems()` |
23 | | - - `NoBoxesAvailableException` now has a `getAffectedItems()` method instead of `getItem()`. This should allow |
| 26 | + `$packedBox->box` and `$packedBox->items` |
| 27 | + - `NoBoxesAvailableException` now has a `->getAffectedItems()` method instead of `->getItem()`. This should allow |
24 | 28 | improved handling of the exception inside calling applications when multiple items cannot be packed |
25 | 29 |
|
26 | 30 | ### Removed |
| 31 | + - Removed `getBox()` and `getItems()` from `PackedBox`. Use the new public properties instead |
| 32 | + - Removed `->getItem()`, `->getX()`, `->getY()`, `->getZ()`, `->getWidth()`, `->getLength()` and `->getDepth()` |
| 33 | + from `PackedItem`. Use the new public properties instead |
27 | 34 | - Removed deprecated `ConstrainedItem`. You should use `ConstrainedPlacementItem` as a replacement |
28 | 35 | - Removed `getKeepFlat()` from the `Item` interface |
29 | 36 | - Removed `InfalliblePacker`. You can now get the same behaviour by calling `->throwOnUnpackableItem(false)` and |
@@ -567,91 +574,92 @@ Initial release |
567 | 574 | - Experimental code to get a feel for how calculations can best be implemented |
568 | 575 | - Only works if all items fit into a single box (so not production ready at all) |
569 | 576 |
|
570 | | -[4.x - Unreleased]: https://github.com/dvdoug/BoxPacker/compare/3.x...master |
571 | | - |
572 | | -[3.12.1]: https://github.com/dvdoug/BoxPacker/compare/3.12.0...3.12.1 |
573 | | -[3.12.0]: https://github.com/dvdoug/BoxPacker/compare/3.11.0...3.12.0 |
574 | | -[3.11.0]: https://github.com/dvdoug/BoxPacker/compare/3.10.0...3.11.0 |
575 | | -[3.10.0]: https://github.com/dvdoug/BoxPacker/compare/3.9.4...3.10.0 |
576 | | -[3.9.4]: https://github.com/dvdoug/BoxPacker/compare/3.9.3...3.9.4 |
577 | | -[3.9.3]: https://github.com/dvdoug/BoxPacker/compare/3.9.2...3.9.3 |
578 | | -[3.9.2]: https://github.com/dvdoug/BoxPacker/compare/3.9.1...3.9.2 |
579 | | -[3.9.1]: https://github.com/dvdoug/BoxPacker/compare/3.9.0...3.9.1 |
580 | | -[3.9.0]: https://github.com/dvdoug/BoxPacker/compare/3.8.0...3.9.0 |
581 | | -[3.8.0]: https://github.com/dvdoug/BoxPacker/compare/3.7.0...3.8.0 |
582 | | -[3.7.0]: https://github.com/dvdoug/BoxPacker/compare/3.6.2...3.7.0 |
583 | | -[3.6.2]: https://github.com/dvdoug/BoxPacker/compare/3.6.1...3.6.2 |
584 | | -[3.6.1]: https://github.com/dvdoug/BoxPacker/compare/3.6.0...3.6.1 |
585 | | -[3.6.0]: https://github.com/dvdoug/BoxPacker/compare/3.5.2...3.6.0 |
586 | | -[3.5.2]: https://github.com/dvdoug/BoxPacker/compare/3.5.1...3.5.2 |
587 | | -[3.5.1]: https://github.com/dvdoug/BoxPacker/compare/3.5.0...3.5.1 |
588 | | -[3.5.0]: https://github.com/dvdoug/BoxPacker/compare/3.4.1...3.5.0 |
589 | | -[3.4.1]: https://github.com/dvdoug/BoxPacker/compare/3.4.0...3.4.1 |
590 | | -[3.4.0]: https://github.com/dvdoug/BoxPacker/compare/3.3.0...3.4.0 |
591 | | -[3.3.0]: https://github.com/dvdoug/BoxPacker/compare/3.2.2...3.3.0 |
592 | | -[3.2.2]: https://github.com/dvdoug/BoxPacker/compare/3.2.1...3.2.2 |
593 | | -[3.2.1]: https://github.com/dvdoug/BoxPacker/compare/3.2.0...3.2.1 |
594 | | -[3.2.0]: https://github.com/dvdoug/BoxPacker/compare/3.1.3...3.2.0 |
595 | | -[3.1.3]: https://github.com/dvdoug/BoxPacker/compare/3.1.2...3.1.3 |
596 | | -[3.1.2]: https://github.com/dvdoug/BoxPacker/compare/3.1.1...3.1.2 |
597 | | -[3.1.1]: https://github.com/dvdoug/BoxPacker/compare/3.1.0...3.1.1 |
598 | | -[3.1.0]: https://github.com/dvdoug/BoxPacker/compare/3.0.1...3.1.0 |
599 | | -[3.0.1]: https://github.com/dvdoug/BoxPacker/compare/3.0.0...3.0.1 |
600 | | -[3.0.0]: https://github.com/dvdoug/BoxPacker/compare/2.4.2...3.0.0 |
601 | | -[2.7.2]: https://github.com/dvdoug/BoxPacker/compare/2.7.1...2.7.2 |
602 | | -[2.7.1]: https://github.com/dvdoug/BoxPacker/compare/2.7.0...2.7.1 |
603 | | -[2.7.0]: https://github.com/dvdoug/BoxPacker/compare/2.6.5...2.7.0 |
604 | | -[2.6.5]: https://github.com/dvdoug/BoxPacker/compare/2.6.4...2.6.5 |
605 | | -[2.6.4]: https://github.com/dvdoug/BoxPacker/compare/2.6.3...2.6.4 |
606 | | -[2.6.3]: https://github.com/dvdoug/BoxPacker/compare/2.6.2...2.6.3 |
607 | | -[2.6.2]: https://github.com/dvdoug/BoxPacker/compare/2.6.1...2.6.2 |
608 | | -[2.6.1]: https://github.com/dvdoug/BoxPacker/compare/2.6.0...2.6.1 |
609 | | -[2.6.0]: https://github.com/dvdoug/BoxPacker/compare/2.5.0...2.6.0 |
610 | | -[2.5.0]: https://github.com/dvdoug/BoxPacker/compare/2.4.8...2.5.0 |
611 | | -[2.4.8]: https://github.com/dvdoug/BoxPacker/compare/2.4.7...2.4.8 |
612 | | -[2.4.7]: https://github.com/dvdoug/BoxPacker/compare/2.4.6...2.4.7 |
613 | | -[2.4.6]: https://github.com/dvdoug/BoxPacker/compare/2.4.5...2.4.6 |
614 | | -[2.4.5]: https://github.com/dvdoug/BoxPacker/compare/2.4.4...2.4.5 |
615 | | -[2.4.4]: https://github.com/dvdoug/BoxPacker/compare/2.4.3...2.4.4 |
616 | | -[2.4.3]: https://github.com/dvdoug/BoxPacker/compare/2.4.2...2.4.3 |
617 | | -[2.4.2]: https://github.com/dvdoug/BoxPacker/compare/2.4.1...2.4.2 |
618 | | -[2.4.1]: https://github.com/dvdoug/BoxPacker/compare/2.4.0...2.4.1 |
619 | | -[2.4.0]: https://github.com/dvdoug/BoxPacker/compare/2.3.2...2.4.0 |
620 | | -[2.3.2]: https://github.com/dvdoug/BoxPacker/compare/2.3.1...2.3.2 |
621 | | -[2.3.1]: https://github.com/dvdoug/BoxPacker/compare/2.3.0...2.3.1 |
622 | | -[2.3.0]: https://github.com/dvdoug/BoxPacker/compare/2.2.1...2.3.0 |
623 | | -[2.2.1]: https://github.com/dvdoug/BoxPacker/compare/2.2.0...2.2.1 |
624 | | -[2.2.0]: https://github.com/dvdoug/BoxPacker/compare/2.1.0...2.2.0 |
625 | | -[2.1.0]: https://github.com/dvdoug/BoxPacker/compare/2.0.2...2.1.0 |
626 | | -[2.0.2]: https://github.com/dvdoug/BoxPacker/compare/2.0.1...2.0.2 |
627 | | -[2.0.1]: https://github.com/dvdoug/BoxPacker/compare/2.0...2.0.1 |
628 | | -[2.0]: https://github.com/dvdoug/BoxPacker/compare/1.5.3...2.0 |
629 | | -[1.7.3]: https://github.com/dvdoug/BoxPacker/compare/1.7.2...1.7.3 |
630 | | -[1.7.2]: https://github.com/dvdoug/BoxPacker/compare/1.7.1...1.7.2 |
631 | | -[1.7.1]: https://github.com/dvdoug/BoxPacker/compare/1.7.0...1.7.1 |
632 | | -[1.7.0]: https://github.com/dvdoug/BoxPacker/compare/1.6.9...1.7.0 |
633 | | -[1.6.9]: https://github.com/dvdoug/BoxPacker/compare/1.6.8...1.6.9 |
634 | | -[1.6.8]: https://github.com/dvdoug/BoxPacker/compare/1.6.7...1.6.8 |
635 | | -[1.6.7]: https://github.com/dvdoug/BoxPacker/compare/1.6.6...1.6.7 |
636 | | -[1.6.6]: https://github.com/dvdoug/BoxPacker/compare/1.6.5...1.6.6 |
637 | | -[1.6.5]: https://github.com/dvdoug/BoxPacker/compare/1.6.4...1.6.5 |
638 | | -[1.6.4]: https://github.com/dvdoug/BoxPacker/compare/1.6.3...1.6.4 |
639 | | -[1.6.3]: https://github.com/dvdoug/BoxPacker/compare/1.6.2...1.6.3 |
640 | | -[1.6.2]: https://github.com/dvdoug/BoxPacker/compare/1.6.1...1.6.2 |
641 | | -[1.6.1]: https://github.com/dvdoug/BoxPacker/compare/1.6.0...1.6.1 |
642 | | -[1.6.0]: https://github.com/dvdoug/BoxPacker/compare/1.5.3...1.6.0 |
643 | | -[1.5.3]: https://github.com/dvdoug/BoxPacker/compare/1.5.2...1.5.3 |
644 | | -[1.5.2]: https://github.com/dvdoug/BoxPacker/compare/1.5.1...1.5.2 |
645 | | -[1.5.1]: https://github.com/dvdoug/BoxPacker/compare/1.5...1.5.1 |
646 | | -[1.5]: https://github.com/dvdoug/BoxPacker/compare/1.4.2...1.5 |
647 | | -[1.4.2]: https://github.com/dvdoug/BoxPacker/compare/1.4.1...1.4.2 |
648 | | -[1.4.1]: https://github.com/dvdoug/BoxPacker/compare/1.4...1.4.1 |
649 | | -[1.4]: https://github.com/dvdoug/BoxPacker/compare/1.3...1.4 |
650 | | -[1.3]: https://github.com/dvdoug/BoxPacker/compare/1.2...1.3 |
651 | | -[1.2]: https://github.com/dvdoug/BoxPacker/compare/1.1...1.2 |
652 | | -[1.1]: https://github.com/dvdoug/BoxPacker/compare/1.0.1...1.1 |
653 | | -[1.0.1]: https://github.com/dvdoug/BoxPacker/compare/1.0...1.0.1 |
654 | | -[1.0]: https://github.com/dvdoug/BoxPacker/compare/0.4...1.0 |
655 | | -[0.4]: https://github.com/dvdoug/BoxPacker/compare/0.3...0.4 |
656 | | -[0.3]: https://github.com/dvdoug/BoxPacker/compare/0.2...0.3 |
657 | | -[0.2]: https://github.com/dvdoug/BoxPacker/compare/0.1...0.2 |
| 577 | +[4.x - Unreleased]: https://github.com/dvdoug/BoxPacker/compare/4.0.0..master |
| 578 | + |
| 579 | +[4.0.0]: https://github.com/dvdoug/BoxPacker/compare/3.12.1..4.0.0 |
| 580 | +[3.12.1]: https://github.com/dvdoug/BoxPacker/compare/3.12.0..3.12.1 |
| 581 | +[3.12.0]: https://github.com/dvdoug/BoxPacker/compare/3.11.0..3.12.0 |
| 582 | +[3.11.0]: https://github.com/dvdoug/BoxPacker/compare/3.10.0..3.11.0 |
| 583 | +[3.10.0]: https://github.com/dvdoug/BoxPacker/compare/3.9.4..3.10.0 |
| 584 | +[3.9.4]: https://github.com/dvdoug/BoxPacker/compare/3.9.3..3.9.4 |
| 585 | +[3.9.3]: https://github.com/dvdoug/BoxPacker/compare/3.9.2..3.9.3 |
| 586 | +[3.9.2]: https://github.com/dvdoug/BoxPacker/compare/3.9.1..3.9.2 |
| 587 | +[3.9.1]: https://github.com/dvdoug/BoxPacker/compare/3.9.0..3.9.1 |
| 588 | +[3.9.0]: https://github.com/dvdoug/BoxPacker/compare/3.8.0..3.9.0 |
| 589 | +[3.8.0]: https://github.com/dvdoug/BoxPacker/compare/3.7.0..3.8.0 |
| 590 | +[3.7.0]: https://github.com/dvdoug/BoxPacker/compare/3.6.2..3.7.0 |
| 591 | +[3.6.2]: https://github.com/dvdoug/BoxPacker/compare/3.6.1..3.6.2 |
| 592 | +[3.6.1]: https://github.com/dvdoug/BoxPacker/compare/3.6.0..3.6.1 |
| 593 | +[3.6.0]: https://github.com/dvdoug/BoxPacker/compare/3.5.2..3.6.0 |
| 594 | +[3.5.2]: https://github.com/dvdoug/BoxPacker/compare/3.5.1..3.5.2 |
| 595 | +[3.5.1]: https://github.com/dvdoug/BoxPacker/compare/3.5.0..3.5.1 |
| 596 | +[3.5.0]: https://github.com/dvdoug/BoxPacker/compare/3.4.1..3.5.0 |
| 597 | +[3.4.1]: https://github.com/dvdoug/BoxPacker/compare/3.4.0..3.4.1 |
| 598 | +[3.4.0]: https://github.com/dvdoug/BoxPacker/compare/3.3.0..3.4.0 |
| 599 | +[3.3.0]: https://github.com/dvdoug/BoxPacker/compare/3.2.2..3.3.0 |
| 600 | +[3.2.2]: https://github.com/dvdoug/BoxPacker/compare/3.2.1..3.2.2 |
| 601 | +[3.2.1]: https://github.com/dvdoug/BoxPacker/compare/3.2.0..3.2.1 |
| 602 | +[3.2.0]: https://github.com/dvdoug/BoxPacker/compare/3.1.3..3.2.0 |
| 603 | +[3.1.3]: https://github.com/dvdoug/BoxPacker/compare/3.1.2..3.1.3 |
| 604 | +[3.1.2]: https://github.com/dvdoug/BoxPacker/compare/3.1.1..3.1.2 |
| 605 | +[3.1.1]: https://github.com/dvdoug/BoxPacker/compare/3.1.0..3.1.1 |
| 606 | +[3.1.0]: https://github.com/dvdoug/BoxPacker/compare/3.0.1..3.1.0 |
| 607 | +[3.0.1]: https://github.com/dvdoug/BoxPacker/compare/3.0.0..3.0.1 |
| 608 | +[3.0.0]: https://github.com/dvdoug/BoxPacker/compare/2.4.2..3.0.0 |
| 609 | +[2.7.2]: https://github.com/dvdoug/BoxPacker/compare/2.7.1..2.7.2 |
| 610 | +[2.7.1]: https://github.com/dvdoug/BoxPacker/compare/2.7.0..2.7.1 |
| 611 | +[2.7.0]: https://github.com/dvdoug/BoxPacker/compare/2.6.5..2.7.0 |
| 612 | +[2.6.5]: https://github.com/dvdoug/BoxPacker/compare/2.6.4..2.6.5 |
| 613 | +[2.6.4]: https://github.com/dvdoug/BoxPacker/compare/2.6.3..2.6.4 |
| 614 | +[2.6.3]: https://github.com/dvdoug/BoxPacker/compare/2.6.2..2.6.3 |
| 615 | +[2.6.2]: https://github.com/dvdoug/BoxPacker/compare/2.6.1..2.6.2 |
| 616 | +[2.6.1]: https://github.com/dvdoug/BoxPacker/compare/2.6.0..2.6.1 |
| 617 | +[2.6.0]: https://github.com/dvdoug/BoxPacker/compare/2.5.0..2.6.0 |
| 618 | +[2.5.0]: https://github.com/dvdoug/BoxPacker/compare/2.4.8..2.5.0 |
| 619 | +[2.4.8]: https://github.com/dvdoug/BoxPacker/compare/2.4.7..2.4.8 |
| 620 | +[2.4.7]: https://github.com/dvdoug/BoxPacker/compare/2.4.6..2.4.7 |
| 621 | +[2.4.6]: https://github.com/dvdoug/BoxPacker/compare/2.4.5..2.4.6 |
| 622 | +[2.4.5]: https://github.com/dvdoug/BoxPacker/compare/2.4.4..2.4.5 |
| 623 | +[2.4.4]: https://github.com/dvdoug/BoxPacker/compare/2.4.3..2.4.4 |
| 624 | +[2.4.3]: https://github.com/dvdoug/BoxPacker/compare/2.4.2..2.4.3 |
| 625 | +[2.4.2]: https://github.com/dvdoug/BoxPacker/compare/2.4.1..2.4.2 |
| 626 | +[2.4.1]: https://github.com/dvdoug/BoxPacker/compare/2.4.0..2.4.1 |
| 627 | +[2.4.0]: https://github.com/dvdoug/BoxPacker/compare/2.3.2..2.4.0 |
| 628 | +[2.3.2]: https://github.com/dvdoug/BoxPacker/compare/2.3.1..2.3.2 |
| 629 | +[2.3.1]: https://github.com/dvdoug/BoxPacker/compare/2.3.0..2.3.1 |
| 630 | +[2.3.0]: https://github.com/dvdoug/BoxPacker/compare/2.2.1..2.3.0 |
| 631 | +[2.2.1]: https://github.com/dvdoug/BoxPacker/compare/2.2.0..2.2.1 |
| 632 | +[2.2.0]: https://github.com/dvdoug/BoxPacker/compare/2.1.0..2.2.0 |
| 633 | +[2.1.0]: https://github.com/dvdoug/BoxPacker/compare/2.0.2..2.1.0 |
| 634 | +[2.0.2]: https://github.com/dvdoug/BoxPacker/compare/2.0.1..2.0.2 |
| 635 | +[2.0.1]: https://github.com/dvdoug/BoxPacker/compare/2.0..2.0.1 |
| 636 | +[2.0]: https://github.com/dvdoug/BoxPacker/compare/1.5.3..2.0 |
| 637 | +[1.7.3]: https://github.com/dvdoug/BoxPacker/compare/1.7.2..1.7.3 |
| 638 | +[1.7.2]: https://github.com/dvdoug/BoxPacker/compare/1.7.1..1.7.2 |
| 639 | +[1.7.1]: https://github.com/dvdoug/BoxPacker/compare/1.7.0..1.7.1 |
| 640 | +[1.7.0]: https://github.com/dvdoug/BoxPacker/compare/1.6.9..1.7.0 |
| 641 | +[1.6.9]: https://github.com/dvdoug/BoxPacker/compare/1.6.8..1.6.9 |
| 642 | +[1.6.8]: https://github.com/dvdoug/BoxPacker/compare/1.6.7..1.6.8 |
| 643 | +[1.6.7]: https://github.com/dvdoug/BoxPacker/compare/1.6.6..1.6.7 |
| 644 | +[1.6.6]: https://github.com/dvdoug/BoxPacker/compare/1.6.5..1.6.6 |
| 645 | +[1.6.5]: https://github.com/dvdoug/BoxPacker/compare/1.6.4..1.6.5 |
| 646 | +[1.6.4]: https://github.com/dvdoug/BoxPacker/compare/1.6.3..1.6.4 |
| 647 | +[1.6.3]: https://github.com/dvdoug/BoxPacker/compare/1.6.2..1.6.3 |
| 648 | +[1.6.2]: https://github.com/dvdoug/BoxPacker/compare/1.6.1..1.6.2 |
| 649 | +[1.6.1]: https://github.com/dvdoug/BoxPacker/compare/1.6.0..1.6.1 |
| 650 | +[1.6.0]: https://github.com/dvdoug/BoxPacker/compare/1.5.3..1.6.0 |
| 651 | +[1.5.3]: https://github.com/dvdoug/BoxPacker/compare/1.5.2..1.5.3 |
| 652 | +[1.5.2]: https://github.com/dvdoug/BoxPacker/compare/1.5.1..1.5.2 |
| 653 | +[1.5.1]: https://github.com/dvdoug/BoxPacker/compare/1.5..1.5.1 |
| 654 | +[1.5]: https://github.com/dvdoug/BoxPacker/compare/1.4.2..1.5 |
| 655 | +[1.4.2]: https://github.com/dvdoug/BoxPacker/compare/1.4.1..1.4.2 |
| 656 | +[1.4.1]: https://github.com/dvdoug/BoxPacker/compare/1.4..1.4.1 |
| 657 | +[1.4]: https://github.com/dvdoug/BoxPacker/compare/1.3..1.4 |
| 658 | +[1.3]: https://github.com/dvdoug/BoxPacker/compare/1.2..1.3 |
| 659 | +[1.2]: https://github.com/dvdoug/BoxPacker/compare/1.1..1.2 |
| 660 | +[1.1]: https://github.com/dvdoug/BoxPacker/compare/1.0.1..1.1 |
| 661 | +[1.0.1]: https://github.com/dvdoug/BoxPacker/compare/1.0..1.0.1 |
| 662 | +[1.0]: https://github.com/dvdoug/BoxPacker/compare/0.4..1.0 |
| 663 | +[0.4]: https://github.com/dvdoug/BoxPacker/compare/0.3..0.4 |
| 664 | +[0.3]: https://github.com/dvdoug/BoxPacker/compare/0.2..0.3 |
| 665 | +[0.2]: https://github.com/dvdoug/BoxPacker/compare/0.1..0.2 |
0 commit comments