Conditions | 8 |
Paths | 11 |
Total Lines | 59 |
Code Lines | 38 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
89 | public function getVariation(Field $field, VersionInfo $versionInfo, $variationName, array $parameters = array()) |
||
90 | { |
||
91 | /** @var \eZ\Publish\Core\FieldType\Image\Value $imageValue */ |
||
92 | $imageValue = $field->value; |
||
93 | $fieldId = $field->id; |
||
94 | $fieldDefIdentifier = $field->fieldDefIdentifier; |
||
95 | if (!$this->supportsValue($imageValue)) { |
||
96 | throw new InvalidArgumentException("Value for field #$fieldId ($fieldDefIdentifier) cannot be used for image alias generation."); |
||
97 | } |
||
98 | |||
99 | $originalPath = $imageValue->id; |
||
100 | |||
101 | $variationWidth = $variationHeight = null; |
||
102 | // Create the image alias only if it does not already exist. |
||
103 | if ($variationName !== IORepositoryResolver::VARIATION_ORIGINAL && !$this->ioResolver->isStored($originalPath, $variationName)) { |
||
104 | try { |
||
105 | $originalBinary = $this->dataLoader->find($originalPath); |
||
106 | } catch (NotLoadableException $e) { |
||
107 | throw new SourceImageNotFoundException($originalPath, 0, $e); |
||
108 | } |
||
109 | |||
110 | $this->logger->debug("Generating '$variationName' variation on $originalPath, field #$fieldId ($fieldDefIdentifier)"); |
||
111 | |||
112 | $this->ioResolver->store( |
||
113 | $this->applyFilter($originalBinary, $variationName), |
||
|
|||
114 | $originalPath, |
||
115 | $variationName |
||
116 | ); |
||
117 | } else { |
||
118 | if ($variationName === IORepositoryResolver::VARIATION_ORIGINAL) { |
||
119 | $variationWidth = $imageValue->width; |
||
120 | $variationHeight = $imageValue->height; |
||
121 | } |
||
122 | $this->logger->debug("'$variationName' variation on $originalPath is already generated. Loading from cache."); |
||
123 | } |
||
124 | |||
125 | try { |
||
126 | $aliasInfo = new SplFileInfo( |
||
127 | $this->ioResolver->resolve($originalPath, $variationName) |
||
128 | ); |
||
129 | } catch (NotResolvableException $e) { |
||
130 | // If for some reason image alias cannot be resolved, throw the appropriate exception. |
||
131 | throw new InvalidVariationException($variationName, 'image', 0, $e); |
||
132 | } catch (RuntimeException $e) { |
||
133 | throw new InvalidVariationException($variationName, 'image', 0, $e); |
||
134 | } |
||
135 | |||
136 | return new ImageVariation( |
||
137 | [ |
||
138 | 'name' => $variationName, |
||
139 | 'fileName' => $aliasInfo->getFilename(), |
||
140 | 'dirPath' => $aliasInfo->getPath(), |
||
141 | 'uri' => $aliasInfo->getPathname(), |
||
142 | 'imageId' => $imageValue->imageId, |
||
143 | 'width' => $variationWidth, |
||
144 | 'height' => $variationHeight, |
||
145 | ] |
||
146 | ); |
||
147 | } |
||
148 | |||
178 |
If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:
If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.