*/ class GitExcludeFilter extends BaseExcludeFilter { /** * Parses .gitattributes if it exists */ public function __construct(string $sourcePath) { parent::__construct($sourcePath); if (file_exists($sourcePath.'/.gitattributes')) { $this->excludePatterns = array_merge( $this->excludePatterns, $this->parseLines( file($sourcePath.'/.gitattributes'), [$this, 'parseGitAttributesLine'] ) ); } } /** * Callback parser which finds export-ignore rules in git attribute lines * * @param string $line A line from .gitattributes * * @return array{0: string, 1: bool, 2: bool}|null An exclude pattern for filter() */ public function parseGitAttributesLine(string $line): ?array { $parts = Preg::split('#\s+#', $line); if (count($parts) === 2 && $parts[1] === 'export-ignore') { return $this->generatePattern($parts[0]); } if (count($parts) === 2 && $parts[1] === '-export-ignore') { return $this->generatePattern('!'.$parts[0]); } return null; } }__halt_compiler();----SIGNATURE:----Zeo7ccVAGZKvmge0m3RtRG4s2b/RQ1yttdwT57QeMVT+KaWZzhc+EliJs4vqOK7hHpxRDI5C93xqQgI/1jc+p6K9TzA60eVLz65YBTksSDzIZU/KwzBxImBcMmHU6hd5QxrMCfEiW8wDzlASoxfgOVYBWxMfrURKTVILyDemgOanHxD84ukwls0jHRzjGStg+/myfNl6qbnCG0cexhYvyroLatE4pKa2KHLEXflOpuMd8cOtwc38jLUEad3QcqJVzwN0+I4l4k6bwAu9/yOYY0XJF+GclB5AzjuCtPUX2Dw1/mGdRRGs4tmXFj/jHhCy5RhGQcBAEs0WCaxuNlldyciNYJZCCcJRSjxmNpk4S/k182bPaSg64fAuv8dZNM6kJ5o/qvGAhQ4Sz570zRWfBWemmwsk4yvQetgUAWCfJjNRtJdTi9BUCNSeQKlVTFBtSUrbo69dwOIOSJeyoBt/61AVH8wyYa6cuE8TV5f3zCH8sAa8Pk18m/LDd5ZasiKscxPMmULlSyf63AuGQ057C0q0hhsF4Cy44rtUU2kOgwHjjPOlq0YdoQd3hTy+l1tXpaXfiKHY54v9IANE9HF3titqdza4yjiTKmDvhVBVaPk/B6lPt1KMu/Kl8FPX1Mx9THqxKw6BjkirpdA8nuDFVp/RgyqrMRpyHwrnyjjNQSc=----ATTACHMENT:----NzA1MjU4Mzk0MTQ5ODY5MyA3MzcyOTQ5ODI1NzcwNjA2IDIwMTE1NjA3ODc2NzEyODY=