Skip to content

Commit 3ac8699

Browse files
committed
Only write generated files when there's actual non-whitespace changes, speeding up composer generate
1 parent 8c38d24 commit 3ac8699

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

src/Generator/ConvertToPHP.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,11 @@ function ($type) use ($schemas) {
172172

173173
$fileGen->setBody($classGen->generate());
174174

175-
$fileGen->write();
176-
175+
if ($existingFile === null || preg_replace('/\s/', '', $existingFile->getContents())
176+
!== preg_replace('/\s/', '', $fileGen->generate())
177+
) {
178+
$fileGen->write();
179+
}
177180
// Add the class to our classMap for writing
178181
if (isset($item->type) && $item->type->getName() != "" && $item->getNamespace() !== Enumeration::class) {
179182
$classMap[$item->type->getName()] =
@@ -190,7 +193,12 @@ function ($type) use ($schemas) {
190193
$fileGen = new FileGenerator();
191194
$fileGen->setFilename($mappingClassReflection->getFileName());
192195
$fileGen->setClass($mappingClass);
193-
$fileGen->write();
196+
197+
if (preg_replace('/\s/', '', file_get_contents($mappingClassReflection->getFileName()))
198+
!== preg_replace('/\s/', '', $fileGen->generate())
199+
) {
200+
$fileGen->write();
201+
}
194202

195203
$progress->finish();
196204
}
@@ -266,6 +274,10 @@ protected function setClientMethodDocblocks(): void
266274
(new Generator\DocBlockGenerator())->setShortDescription("Contains ExchangeWebServices.")
267275
);
268276

269-
$fileGen->write();
277+
if (preg_replace('/\s/', '', file_get_contents($fileGen->getFileName()))
278+
!== preg_replace('/\s/', '', $fileGen->generate())
279+
) {
280+
$fileGen->write();
281+
}
270282
}
271283
}

0 commit comments

Comments
 (0)