Я создал небольшой пакет, который содержит valueObject Тип объектов для измерений. ValueObject ), который имеет два свойства:
value - type float , и Unit MeasurementUnit , который является интерфейсом.
it служит мне во многих проектах для подразделений, которые обрабатываются слишком подробно в проекте, чтобы они были простым типом. Классы особенно для этого, которые Lenght наследуют от измерения инит -энтуофекта . В классе есть поле $ unit type longuunit , которое представляет собой enum реализующий измерение measurementunit . Кроме того, для каждой единицы так называемый преобразователь также создается с именем LenghtConverter , целью которого является преобразование блока для заданного количества.
В целом, Все это сводится к тому факту, что я могу создать этот вид кода: < /p>
Код: Выделить всё
$length = new Length(22, LengthUnit::Miles);
$lenght2 = LengthConverter::toKilometers($length);
$lenght->isEqual($lenght2); //true
$lenght2->value // 35.405568;
$lenght2->toMiles()->value; //22
$lenght2->toMiles()->unit; // Enum: LenghtUnit::Miles;
< /code>
и т. Д. Большое число, и в большинстве проектов мне просто не нужны все из них, и иногда случается, что, например, мне нужны только классы, связанные с проведением Однако мне было интересно, есть ли опция Композитор, который позволил бы мне разделить один пакет на более мелкие сегменты, которые можно исключить во время установки, и я не имею в виду создание отдельных проектов. p>
Код: Выделить всё
"require": {
"my_units_package": "^1.0''
}
< /code>
Но таким образом я мог добавить тег, который указывает, что загружать или что не загружать. Я знаю, что существует такое дополнительное Код: Выделить всё
"extra": {
"except": ["Power", "Volume"]
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... le-package
Мобильная версия