Skip to content

Commit 1b339da

Browse files
authored
Blade: skip view data members declared in vendor (#350)
1 parent 71d251c commit 1b339da

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

src/Provider/TemplateViewDataTraverser.php

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,13 @@ private function getPublicMembersUsages(
121121
continue;
122122
}
123123

124+
// Skip methods declared outside analysed paths (vendor base classes/traits)
125+
$declaringFile = $method->getDeclaringClass()->getFileName();
126+
127+
if (!$this->isFileAnalysed($declaringFile === false ? null : $declaringFile)) {
128+
continue;
129+
}
130+
124131
// Mark method as used
125132
$usages[] = new ClassMethodUsage(
126133
UsageOrigin::createVirtual($provider, VirtualUsageData::withNote($context)),
@@ -152,6 +159,13 @@ private function getPublicMembersUsages(
152159
continue;
153160
}
154161

162+
// Skip properties declared outside analysed paths (vendor base classes/traits)
163+
$declaringFile = $property->getDeclaringClass()->getFileName();
164+
165+
if (!$this->isFileAnalysed($declaringFile === false ? null : $declaringFile)) {
166+
continue;
167+
}
168+
155169
$usages[] = new ClassPropertyUsage(
156170
UsageOrigin::createVirtual($provider, VirtualUsageData::withNote($context)),
157171
new ClassPropertyRef($className, $property->getName(), possibleDescendant: false),
@@ -179,19 +193,22 @@ private function getPublicMembersUsages(
179193

180194
private function shouldSkipClass(ClassReflection $classReflection): bool
181195
{
182-
$fileName = $classReflection->getFileName();
196+
return !$this->isFileAnalysed($classReflection->getFileName());
197+
}
183198

199+
private function isFileAnalysed(?string $fileName): bool
200+
{
184201
if ($fileName === null) {
185-
return true;
202+
return false;
186203
}
187204

188205
foreach ($this->analysedPaths as $path) {
189206
if (str_starts_with($fileName, $path)) {
190-
return false; // do not traverse non-analyzed classes (e.g. vendor)
207+
return true;
191208
}
192209
}
193210

194-
return true;
211+
return false;
195212
}
196213

197214
}

0 commit comments

Comments
 (0)