From a1e4712d6a0223aa08d78e45e808345b9e9aa524 Mon Sep 17 00:00:00 2001 From: Peter Cowburn Date: Wed, 13 Jul 2011 09:39:04 +0000 Subject: [PATCH] replay reverted r313182 with fixed examples sections git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@313199 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/spl/callbackfilteriterator.xml | 60 ++++++++++++++++ .../spl/recursivecallbackfilteriterator.xml | 68 +++++++++++++++++++ .../construct.xml | 33 ++++++--- .../getchildren.xml | 21 ++++-- .../haschildren.xml | 48 +++++++++++-- reference/spl/versions.xml | 10 +++ 6 files changed, 222 insertions(+), 18 deletions(-) diff --git a/reference/spl/callbackfilteriterator.xml b/reference/spl/callbackfilteriterator.xml index c2e714f51a..0432aad00e 100644 --- a/reference/spl/callbackfilteriterator.xml +++ b/reference/spl/callbackfilteriterator.xml @@ -60,6 +60,66 @@ + +
+ &reftitle.examples; + + The callback should accept up to three arguments: + the current item, the current key and the iterator, respectively. + + + Available callback arguments + + +]]> + + + + Any callback may be used; such as a string containing a + function name, an array for a method, or an anonymous function. + + + Callback basic examples + + 100MB) +function is_large_file($current) { + return $current->isFile() && $current->getSize() > 104857600; +} +$large_files = new CallbackFilterIterator($dir, 'is_large_file'); + +// Filter directories +$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) { + return $current->isDir() && ! $iterator->isDot(); +}); + +?> +]]> + + +
+ + + &reference.spl.entities.callbackfilteriterator; diff --git a/reference/spl/recursivecallbackfilteriterator.xml b/reference/spl/recursivecallbackfilteriterator.xml index dc66d1251f..9fa61c7806 100644 --- a/reference/spl/recursivecallbackfilteriterator.xml +++ b/reference/spl/recursivecallbackfilteriterator.xml @@ -64,6 +64,74 @@ + +
+ &reftitle.examples; + + The callback should accept up to three arguments: + the current item, the current key and the iterator, respectively. + + + Available callback arguments + + +]]> + + + + Filtering a recursive iterator generally involves two conditions. + The first is that, to allow recursion, the callback function should return &true; + if the current iterator item has children. + The second is the normal filter condition, such as a file size or extension + check as in the example below. + + + Recursive callback basic example + + 100MB) +$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) { + // Allow recursion + if ($iterator->hasChildren()) { + return TRUE; + } + // Check for large file + if ($current->isFile() && $current->getSize() > 104857600) { + return TRUE; + } + return FALSE; +}); + +foreach (new RecursiveIteratorIterator($files) as $file) { + echo $file->getPathname() . PHP_EOL; +} + +?> +]]> + + +
+ + &reference.spl.entities.recursivecallbackfilteriterator; diff --git a/reference/spl/recursivecallbackfilteriterator/construct.xml b/reference/spl/recursivecallbackfilteriterator/construct.xml index d9540eb5be..076db992a4 100644 --- a/reference/spl/recursivecallbackfilteriterator/construct.xml +++ b/reference/spl/recursivecallbackfilteriterator/construct.xml @@ -9,17 +9,17 @@ &reftitle.description; - + + public RecursiveCallbackFilterIterator::__construct RecursiveIteratoriterator stringcallback - + - + Creates a filtered iterator from a RecursiveIterator + using the callback to determine which + items are accepted or rejected. - - &warn.undocumented.func; - @@ -29,7 +29,7 @@ iterator - + The recursive iterator to be filtered. @@ -37,7 +37,12 @@ callback - + The callback, which should return &true; to accept the current item + or &false; otherwise. + See Examples. + + + May be any valid callback value. @@ -47,10 +52,20 @@ &reftitle.returnvalues; - + &return.void; + + &reftitle.seealso; + + + RecursiveCallbackFilterIterator Examples + RecursiveCallbackFilterIterator::getChildren + RecursiveCallbackFilteriterator::hasChildren + + + diff --git a/reference/spl/recursivecallbackfilteriterator/getchildren.xml b/reference/spl/recursivecallbackfilteriterator/getchildren.xml index de40a38739..1a656e1214 100644 --- a/reference/spl/recursivecallbackfilteriterator/getchildren.xml +++ b/reference/spl/recursivecallbackfilteriterator/getchildren.xml @@ -14,11 +14,12 @@ - + Fetches the filtered children of the inner iterator. + + + RecursiveCallbackFilterIterator::hasChildren should be used + to determine if there are children to be fetched. - - &warn.undocumented.func; - @@ -29,7 +30,19 @@ &reftitle.returnvalues; + Returns a RecursiveCallbackFilterIterator containing + the children. + + + + &reftitle.seealso; + + + RecursiveCallbackFilterIterator Examples + RecursiveCallbackFilterIterator::__construct + RecursiveCallbackFilteriterator::hasChildren + diff --git a/reference/spl/recursivecallbackfilteriterator/haschildren.xml b/reference/spl/recursivecallbackfilteriterator/haschildren.xml index 906fa3c8ea..84cae075b6 100644 --- a/reference/spl/recursivecallbackfilteriterator/haschildren.xml +++ b/reference/spl/recursivecallbackfilteriterator/haschildren.xml @@ -14,11 +14,8 @@ - + Returns &true; if the current element has children, &false; otherwise. - - &warn.undocumented.func; - @@ -29,10 +26,51 @@ &reftitle.returnvalues; - + Returns &true; if the current element has children, &false; otherwise. + + &reftitle.examples; + + + <methodname>RecursiveCallbackFilterIterator::hasChildren</methodname> basic usage + +hasChildren()) { + return TRUE; + } + // Check for XML file + if (!strcasecmp($current->getExtension(), 'xml')) { + return TRUE; + } + return FALSE; +}); + +?> +]]> + + + + + + + &reftitle.seealso; + + + RecursiveCallbackFilterIterator Examples + RecursiveCallbackFilterIterator::__construct + RecursiveCallbackFilteriterator::getChildren + + + diff --git a/reference/spl/versions.xml b/reference/spl/versions.xml index 71224d1bec..8c94c179be 100644 --- a/reference/spl/versions.xml +++ b/reference/spl/versions.xml @@ -1020,6 +1020,16 @@ + + + + + + + + + +