Я создал небольшой пакет, который содержит 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>
и т. Д. Большое число, и в большинстве проектов мне просто не нужны все из них, и иногда случается, что, например, мне нужны только классы, связанные с В принципе, это не большая проблема, потому что, как правило, есть 3 файла для 1 объекта: единица, valueObject, преобразователь, и эти файлы действительно легкие, поэтому Все это вопрос нескольких килобайт. , и я не имею в виду создание отдельных проектов.
Код: Выделить всё
"require": {
"my_units_package": "^1.0''
}
< /code>
Но таким образом я мог добавить тег, который указывает, что загружать или что не загружать. Я знаю, что существует такое дополнительное Код: Выделить всё
"extra": {
"except": ["Power", "Volume"]
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... le-package
Мобильная версия