2016-03-04 19:23:02 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Indicates that an object can be bundled.
|
|
|
|
*/
|
|
|
|
interface Bundleable {
|
|
|
|
|
|
|
|
/**
|
2017-08-09 15:20:55 +00:00
|
|
|
* @return bool Whether this object can be bundled.
|
2016-03-04 19:23:02 +00:00
|
|
|
*/
|
|
|
|
public function canBeBundled();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return string objects with the same bundling key can be bundled together
|
|
|
|
*/
|
|
|
|
public function getBundlingKey();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param Bundleable[] $bundleables other object that have been bundled with this one
|
|
|
|
*/
|
2019-10-23 10:44:35 +00:00
|
|
|
public function setBundledElements( array $bundleables );
|
2016-03-04 19:23:02 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return mixed the key by which this object should be sorted during the bundling process
|
|
|
|
*/
|
|
|
|
public function getSortingKey();
|
|
|
|
}
|