Browse Source

ZF-11546 - Zend_Translate_Adapter throws E_FATAL if under a SVN repository. Altered RecursiveIteratorIterator to consume a RecursiveRegExIterator to ignore .svn and .cvs folders.

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24214 44c647ce-9c0f-0410-b52a-842ac1e357ba
guilhermeblanco 14 years ago
parent
commit
9c0927cce8
1 changed files with 10 additions and 3 deletions
  1. 10 3
      library/Zend/Translate/Adapter.php

+ 10 - 3
library/Zend/Translate/Adapter.php

@@ -245,9 +245,14 @@ abstract class Zend_Translate_Adapter {
         if (is_string($options['content']) and is_dir($options['content'])) {
             $options['content'] = realpath($options['content']);
             $prev = '';
-            foreach (new RecursiveIteratorIterator(
-                     new RecursiveDirectoryIterator($options['content'], RecursiveDirectoryIterator::KEY_AS_PATHNAME),
-                     RecursiveIteratorIterator::SELF_FIRST) as $directory => $info) {
+            $iterator = new RecursiveIteratorIterator(
+                new RecursiveRegexIterator(
+                    new RecursiveDirectoryIterator($options['content'], RecursiveDirectoryIterator::KEY_AS_PATHNAME),
+                    '/^(?!.*(\.svn|\.cvs)).*$/', RecursiveRegexIterator::MATCH
+                )
+            );
+            
+            foreach ($iterator as $directory => $info) {
                 $file = $info->getFilename();
                 if (is_array($options['ignore'])) {
                     foreach ($options['ignore'] as $key => $ignore) {
@@ -315,6 +320,8 @@ abstract class Zend_Translate_Adapter {
                     }
                 }
             }
+            
+            unset($iterator);
         } else {
             $this->_addTranslationData($options);
         }