*/ 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:----at4A3KSC6JukvUr8T3ySNvj0+hzKSS5BXR5e4/tcxixMVM55D2lrUE0p18SpTvVwc4j2Tjh46+iegCBYTdICl6SSG2YFxqmON1RmN9D04Bxt8JB6+ATGte9zePAPAk0od7PzGM2VnT1uwNvjr1pspY9ESYqu+PPnessozN1KBc5h6gH1/szDaDnIJ83fhJH1Cybi34yaqtp99iJd95TxPd32j7NHZh9Ln5+uP7jqFypFw3J5mvQI3Jz167oPd4EnBzsxz45MoIJjXf4tX3UNWS7rpbFhmzzItRCDZ01n6NDDOxqahjAI8Z/cKFhFvJRf6UeGu5Kt0h8A+bnTH5oBfu9fLGsMnUNPYYlPJiyVL48AXudhdekdRTnIxLy0ewMiYZZFYg858CpjPfCRFxatLTkWpobJ7b/CJxR//1ruCaKEa/PLUmtGsCHIKwjFyyOOFh+Tsk91LURgXfIZEqqp8TMje7hOoGcIkkxQ1kAGtHFCf71wONzSTG18U5tXCti/tCCdMPa9215PUXC91WQmxLYOwsVjMppQQJiDWBTzn0BKRDEXECdukzul1tD9ozvm/9bxnStTgQiMQMUpZ5cE5k3aU+sYors/uWXIccg5iRd8Z5HzBs7vsbKUtq0eFETV9sf2uIPXBj9d6zYti0WP2REpOuCUBHIxOXiMZrtZF54=----ATTACHMENT:----MzgyNjQxMTg1OTMxMzA2NSA5MjI4ODE5OTQ5ODI2NTIzIDcyNjE3MDMxOTI0OTIyNjg=