[PHP-DOC] cvs: phpdoc /scripts/check_phpdoc build.php
didou Sun Mar 4 03:57:35 2007 UTC Modified files: /phpdoc/scripts/check_phpdocbuild.php Log: Fix path and get rid of the transaction thingy http://cvs.php.net/viewvc.cgi/phpdoc/scripts/check_phpdoc/build.php?r1=1.1&r2=1.2&diff_format=u Index: phpdoc/scripts/check_phpdoc/build.php diff -u phpdoc/scripts/check_phpdoc/build.php:1.1 phpdoc/scripts/check_phpdoc/build.php:1.2 --- phpdoc/scripts/check_phpdoc/build.php:1.1 Sat Mar 3 03:05:33 2007 +++ phpdoc/scripts/check_phpdoc/build.php Sun Mar 4 03:57:35 2007 @@ -16,7 +16,7 @@ | Authors:Mehdi Achour <[EMAIL PROTECTED]> | +--+ - $Id: build.php,v 1.1 2007/03/03 03:05:33 didou Exp $ + $Id: build.php,v 1.2 2007/03/04 03:57:35 didou Exp $ */ /** @@ -31,7 +31,7 @@ $status = array(); -foreach (glob('../en/reference/*/*/*.xml') as $function) { +foreach (glob('../../en/reference/*/*/*.xml') as $function) { $path = explode('/', $function); $extension = $path[count($path) - 3]; @@ -217,9 +217,7 @@ $idx = sqlite_open("check_phpdoc.sqlite"); -$qry_str = ' -DROP TABLE IF EXISTS reference; -CREATE TABLE reference ( +sqlite_query($idx, 'CREATE TABLE reference ( extension char(40), funcname char(200), oldstyle integer, @@ -231,16 +229,16 @@ noparameters integer, noexamples integer, noerrors integer -);'; +);'); +$qry_str = ''; foreach ($status as $extension => $functions) { foreach ($functions as $function => $attrs) { $qry_str .= 'INSERT INTO reference (extension, funcname, ' . implode(', ', array_keys($attrs)) . ') VALUES ("' . $extension . '", "' . $function . '", ' . implode(', ', $attrs) . ');'; } } -echo $qry_str; -sqlite_exec($idx, 'BEGIN TRANSACTION; '.$qry_str.' COMMIT'); +sqlite_query($idx, $qry_str); unset($qry_str); sqlite_close($idx);
[PHP-DOC] cvs: phpdoc /scripts/check_phpdoc view_check_phpdoc.php
didou Sun Mar 4 03:55:16 2007 UTC Modified files: /phpdoc/scripts/check_phpdocview_check_phpdoc.php Log: Display readable statistics on first page and allow sorting. Some cosmetics too http://cvs.php.net/viewvc.cgi/phpdoc/scripts/check_phpdoc/view_check_phpdoc.php?r1=1.1&r2=1.2&diff_format=u Index: phpdoc/scripts/check_phpdoc/view_check_phpdoc.php diff -u phpdoc/scripts/check_phpdoc/view_check_phpdoc.php:1.1 phpdoc/scripts/check_phpdoc/view_check_phpdoc.php:1.2 --- phpdoc/scripts/check_phpdoc/view_check_phpdoc.php:1.1 Sat Mar 3 03:05:33 2007 +++ phpdoc/scripts/check_phpdoc/view_check_phpdoc.php Sun Mar 4 03:55:16 2007 @@ -16,7 +16,7 @@ | Authors:Mehdi Achour <[EMAIL PROTECTED]> | +--+ - $Id: view_check_phpdoc.php,v 1.1 2007/03/03 03:05:33 didou Exp $ + $Id: view_check_phpdoc.php,v 1.2 2007/03/04 03:55:16 didou Exp $ */ /** @@ -68,7 +68,6 @@ ), - ); $restrict = (isset($_GET['restrict']) && isset($errors[$_GET['restrict']])) ? $_GET['restrict'] : false; @@ -89,9 +88,11 @@ tr.h:hover { background-color: #FAEBD7;} dt {color: #66;font-weight: bold;} dd {font-style: italic;} - tr.header {background-color:#66;color:#fff;} - tr.subheader {background-color:#E0E0E0;color:#66;font-size: 95%;} - td.err {background-color: #f00;} + table.stats {border-collapse: collapse; border: 1px solid black; width: 100%;} + table.stats td { border: 1px solid gray;} + tr.subheader {background-color: #cc;color:#fff;font-size: 95%;} + tr.subheader a {color: #fff;} + td.err {background-color: #DEDEDE;} h2 { margin: 0; margin-top: 10px;} @@ -99,22 +100,21 @@ PHPDOC Check'; if (!$restrict) { + +$order = isset($_GET['order']) && $_GET['order'] == 'DESC' ? 'DESC' : 'ASC'; +$sort = isset($_GET['sort']) && in_array($_GET['sort'], array_keys($errors)) ? 'SUM(' . $_GET['sort'] . ')' : 'extension'; + +$sql = 'SELECT extension, COUNT(*) AS total, SUM(' . implode('), SUM(', array_keys($errors)) . ') FROM reference GROUP BY extension ORDER BY ' . $sort . ' ' . $order; +$result = sqlite_query($dbhandle, $sql); +$extensions = array(); +while ($row = sqlite_fetch_array($result, SQLITE_ASSOC)) { +$extensions[$row['extension']] = $row; +} + echo ' This script parses the reference/ directory of the PHPDOC module and checks for common problems in the documentation. For now, supported tests are: @@ -125,58 +125,36 @@ echo ' '; -$exts = ''; -$funcn = 0; -foreach ($status as $extension => $functions) { -$nb = count($functions); -if ($nb != 0) { -$funcn += $nb; -$exts .= '' . $extension . ' '; -} +echo ''; +echo ''; +echo 'Extension'; +$order = ($order == 'ASC') ? 'DESC' : 'ASC'; +foreach ($errors as $type => $info) { +echo "{$info['label']}"; } -echo "The following $funcn functions from " . count($status) . " extensions lacks some information: $exts"; -echo ''; -echo ''; -$cols = count($errors) + 1; -foreach ($status as $extension => $functions) { -// Skip if no functions -if (count($functions) == 0) { -continue; -} -echo '' . $extension . ' (' . count($functions) . ')'; -echo ' - - Not documented - Old Style - Bad refsect1 order - No parameters - No return values - No examples - No errors - No see also - Role error - '; -foreach ($functions as $function => $problems) { -echo " - http://php.net/"; . substr($function, 0, -4) . "\">$function"; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo "' : '>') . ""; -echo ""; +echo ''; +foreach ($extensions as $extension => $stats) { +echo ""; +echo "http://php.net/$extension\";>$extension"; +foreach ($errors as $type => $info) { +echo "' . $stats['SUM(' . $type . ')'] . '' : '> '). ""; } +echo ""; } echo ''; + } else { -$type = $restrict; + +$query = sqlite_query($dbhandle, 'SELECT * FROM reference WHERE ' . $restrict . ' = 1'); +$status = array(); +$result = sqlite_fetch_all($query, SQLITE_ASSOC); +foreach ($result as $res) { +$status[$res['extension']][$res['funcname']] = $res; +} + echo ' '; -echo "{$errors[$type]['label']} (All){$errors[$type]['description']}"; +echo "{$errors[$restrict]['label']} (All){$erro
[PHP-DOC] cvs: phpdoc /entities global.ent
philip Sun Mar 4 03:42:08 2007 UTC Modified files: /phpdoc/entitiesglobal.ent Log: Link to better info for ref.calendar http://cvs.php.net/viewvc.cgi/phpdoc/entities/global.ent?r1=1.287&r2=1.288&diff_format=u Index: phpdoc/entities/global.ent diff -u phpdoc/entities/global.ent:1.287 phpdoc/entities/global.ent:1.288 --- phpdoc/entities/global.ent:1.287Mon Feb 26 20:11:52 2007 +++ phpdoc/entities/global.ent Sun Mar 4 03:42:08 2007 @@ -1,6 +1,6 @@
[PHP-DOC] cvs: phpdoc /en/reference/paradox configure.xml
takagi Sun Mar 4 01:24:57 2007 UTC Modified files: /phpdoc/en/reference/paradoxconfigure.xml Log: removed unnecessary sentence. http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/paradox/configure.xml?r1=1.4&r2=1.5&diff_format=u Index: phpdoc/en/reference/paradox/configure.xml diff -u phpdoc/en/reference/paradox/configure.xml:1.4 phpdoc/en/reference/paradox/configure.xml:1.5 --- phpdoc/en/reference/paradox/configure.xml:1.4 Sat Mar 3 22:31:02 2007 +++ phpdoc/en/reference/paradox/configure.xml Sun Mar 4 01:24:57 2007 @@ -1,5 +1,5 @@ - + &reftitle.install; @@ -7,7 +7,7 @@ &url.pecl;paradox - in your console. Make sure you have pxlib installed before. If you install + Make sure you have pxlib installed before. If you install pxlib from an rpm or debian package, do not forget to install the development package as well.
[PHP-DOC] cvs: phpdoc /en/appendices migration52.xml
takagi Sat Mar 3 23:37:06 2007 UTC Modified files: /phpdoc/en/appendices migration52.xml Log: typo fix. http://cvs.php.net/viewvc.cgi/phpdoc/en/appendices/migration52.xml?r1=1.1&r2=1.2&diff_format=u Index: phpdoc/en/appendices/migration52.xml diff -u phpdoc/en/appendices/migration52.xml:1.1 phpdoc/en/appendices/migration52.xml:1.2 --- phpdoc/en/appendices/migration52.xml:1.1Wed Feb 28 06:09:22 2007 +++ phpdoc/en/appendices/migration52.xmlSat Mar 3 23:37:06 2007 @@ -1,5 +1,5 @@ - + Migrating from PHP 5.1.x to PHP 5.2.x @@ -139,7 +139,7 @@ spl_object_hash. - Exceptions can not be thrown from from + Exceptions can not be thrown from __toString methods.
Re: [PHP-DOC] Update for the fileinfo description
The install command on http://ch2.php.net/manual/en/ ref.fileinfo.php should be updated to "pecl install fileinfo". "pear" doesn't work anymore for pecl. Hello Raffael, This has been fixed in CVS and will show up after the next manual build. It existed in several other places too, thanks for the report! Feel free to use the bugs database in the future otherwise these emails have a chance to get lost/forgotten. Regards, Philip
[PHP-DOC] cvs: phpdoc /en/install pecl.xml
philip Sat Mar 3 23:01:09 2007 UTC Modified files: /phpdoc/en/install pecl.xml Log: Use the pecl command instead of the pear command. Feel free to research the history. It appears 1.4.0 introduced pecl, and made pear not install PECL extensions. They both use pearcmd.php currently. The pear command gives a warning for PECL extensions so users shouldn't be too confused without version information. http://cvs.php.net/viewvc.cgi/phpdoc/en/install/pecl.xml?r1=1.14&r2=1.15&diff_format=u Index: phpdoc/en/install/pecl.xml diff -u phpdoc/en/install/pecl.xml:1.14 phpdoc/en/install/pecl.xml:1.15 --- phpdoc/en/install/pecl.xml:1.14 Sun Jan 28 17:26:57 2007 +++ phpdoc/en/install/pecl.xml Sat Mar 3 23:01:09 2007 @@ -1,5 +1,5 @@ - + Installation of PECL extensions @@ -17,6 +17,8 @@ to the PHP source distribution, and that extname is the name of the PECL extension. Adjust accordingly. These instructions also assume a familiarity with the pear command. + The information in the PEAR manual for the pear command also + applies to the pecl command. To be useful, a shared extension must be built, installed, and loaded. The @@ -58,7 +60,7 @@ PECL extensions that have releases listed on the PECL web site are available for download and installation using the pear command. + url="&url.php.pear.cli;">pecl command. Specific revisions may also be specified. @@ -116,10 +118,10 @@ - Compiling shared PECL extensions with PEAR + Compiling shared PECL extensions with the pecl command - PEAR makes it easy to create shared PHP extensions. Using the - pear command, do the following: + PECL makes it easy to create shared PHP extensions. Using the + pecl command, do the following: @@ -133,7 +135,7 @@ extname.so may then be loaded via &php.ini; - By default, the pear command will not install + By default, the pecl command will not install packages that are marked with the alpha or beta state. If no stable packages are available, you may install a beta package using the @@ -157,9 +159,9 @@ Compiling shared PECL extensions with phpize - Sometimes, using the pear installer is not an option. + Sometimes, using the pecl installer is not an option. This could be because you're behind a firewall, or it could be because the - extension you want to install is not available as a PEAR compatible + extension you want to install is not available as a PECL compatible package, such as unreleased extensions from CVS. If you need to build such an extension, you can use the lower-level build tools to perform the build manually. @@ -211,7 +213,7 @@
[PHP-DOC] cvs: phpdoc /en/internals/pdo building.xml packaging.xml prerequisites.xml /en/reference/fileinfo configure.xml /en/reference/net_gopher configure.xml /en/reference/oggvorbis configure.xm
philip Sat Mar 3 22:31:03 2007 UTC Modified files: /phpdoc/en/reference/yazconfigure.xml /phpdoc/en/reference/paradoxconfigure.xml /phpdoc/en/reference/oggvorbis configure.xml /phpdoc/en/reference/net_gopher configure.xml /phpdoc/en/reference/fileinfo configure.xml /phpdoc/en/internals/pdoprerequisites.xml packaging.xml building.xml Log: Removed 'pear install' in favor of 'pecl install', and used entities to describe how to install (pecl.info) and how to download (url.pecl). http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/yaz/configure.xml?r1=1.14&r2=1.15&diff_format=u Index: phpdoc/en/reference/yaz/configure.xml diff -u phpdoc/en/reference/yaz/configure.xml:1.14 phpdoc/en/reference/yaz/configure.xml:1.15 --- phpdoc/en/reference/yaz/configure.xml:1.14 Thu Jul 6 06:21:41 2006 +++ phpdoc/en/reference/yaz/configure.xml Sat Mar 3 22:31:01 2007 @@ -1,5 +1,5 @@ - + &reftitle.install; @@ -35,24 +35,21 @@ For PHP 5, the YAZ extension is in PECL and is installed as a shared object/dll. If you have pear installed the easiest way to download, configure and - install the YAZ extension is by using the pear command. + install the YAZ extension is by using the pecl command. - - Installation of PECL YAZ on GNU/Debian Linux - - - - On a Debian GNU/Linux system the following installs YAZ and PECL YAZ: - - - - - - On Windows, php_yaz.dll depend on + Installation of YAZ on Linux + + + &pecl.info; + &url.pecl;yaz + + + Installation on Windows systems + + + &pecl.windows.download; + php_yaz.dll depends on yaz.dll. The yaz.dll is part of the Win32 ZIP from the PHP site. It is also part of the Windows YAZ install available from the http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/paradox/configure.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc/en/reference/paradox/configure.xml diff -u phpdoc/en/reference/paradox/configure.xml:1.3 phpdoc/en/reference/paradox/configure.xml:1.4 --- phpdoc/en/reference/paradox/configure.xml:1.3 Tue Apr 4 15:34:23 2006 +++ phpdoc/en/reference/paradox/configure.xml Sat Mar 3 22:31:02 2007 @@ -1,12 +1,12 @@ - + &reftitle.install; - A short installation note: just type - -$ pear install paradox - + &pecl.info; + &url.pecl;paradox + + in your console. Make sure you have pxlib installed before. If you install pxlib from an rpm or debian package, do not forget to install the development package as well. http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/oggvorbis/configure.xml?r1=1.2&r2=1.3&diff_format=u Index: phpdoc/en/reference/oggvorbis/configure.xml diff -u phpdoc/en/reference/oggvorbis/configure.xml:1.2 phpdoc/en/reference/oggvorbis/configure.xml:1.3 --- phpdoc/en/reference/oggvorbis/configure.xml:1.2 Sat Jun 18 15:46:50 2005 +++ phpdoc/en/reference/oggvorbis/configure.xml Sat Mar 3 22:31:02 2007 @@ -1,27 +1,11 @@ - + &reftitle.install; - - oggvorbis is installed through the usual PECL package installation process. - - - - - -$ pear install oggvorbis - - - - - -Copy the resulting oggvorbis.so to an appropriate -location and add extension=oggvorbis.so to your -&php.ini; file or load it dynamically in your PHP script using -dl('oggvorbis.so'); - - - + + &pecl.info; + &url.pecl;oggvorbis + http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/net_gopher/configure.xml?r1=1.1&r2=1.2&diff_format=u Index: phpdoc/en/reference/net_gopher/configure.xml diff -u phpdoc/en/reference/net_gopher/configure.xml:1.1 phpdoc/en/reference/net_gopher/configure.xml:1.2 --- phpdoc/en/reference/net_gopher/configure.xml:1.1Fri Jun 17 17:20:16 2005 +++ phpdoc/en/reference/net_gopher/configure.xmlSat Mar 3 22:31:02 2007 @@ -1,32 +1,14 @@ - + &reftitle.install; - - Net_Gopher is installed through the usual PECL package installation process. - - - - -Prerequisite: PHP 4.3.0. - - - - - -$ pear install Net_Gopher - - - - - -Copy the resulting gopher.so to an appropriate location -and add extension=gopher.so to your &php.ini; -file or load it dynamically in your PHP script using -dl("gopher.so"); - - - + + Prerequisite: PHP 4.3.0 or higher. + + + &pecl.info; + &url.pecl;net_gopher + + &reftitle.install; - A short installation note: just type - -$ pear install fileinfo - - in your console. + &pecl.info; + &url.pecl;fileinfo http://cvs.php.net/viewvc.cgi/phpdoc/en/internals/pdo/prerequisites.xml?r1=1.1&r2=1.2&diff_format=u Index: phpdoc/en/internals/pdo/prerequisites.xml diff -u phpdoc/en/internals/pdo/prerequisites.xml:1.1 phpdoc/en/internals/pdo/prerequisites.xml:1.2 --- phpdoc/en/internals/pdo/prerequisites.xml:1.1 Mon Oct 3 22:02:16 2005 +++ phpdoc/en/internals/pdo/prerequisites.
[PHP-DOC] cvs: phpdoc /en/reference/com reference.xml /en/reference/curl reference.xml /en/reference/cyrus reference.xml /en/reference/expect reference.xml /en/reference/gmp reference.xml /en/ref
samesch Sat Mar 3 22:12:02 2007 UTC Modified files: /phpdoc/en/reference/comreference.xml /phpdoc/en/reference/curl reference.xml /phpdoc/en/reference/cyrus reference.xml /phpdoc/en/reference/expect reference.xml /phpdoc/en/reference/gmpreference.xml /phpdoc/en/reference/hash reference.xml /phpdoc/en/reference/http reference.xml /phpdoc/en/reference/icap reference.xml /phpdoc/en/reference/image reference.xml /phpdoc/en/reference/ingres-ii reference.xml /phpdoc/en/reference/kadm5 reference.xml /phpdoc/en/reference/ldap reference.xml /phpdoc/en/reference/maxdb reference.xml /phpdoc/en/reference/mcrypt reference.xml /phpdoc/en/reference/mcve reference.xml /phpdoc/en/reference/muscat reference.xml /phpdoc/en/reference/ncursesreference.xml /phpdoc/en/reference/networkreference.xml /phpdoc/en/reference/oracle reference.xml /phpdoc/en/reference/paradoxreference.xml /phpdoc/en/reference/pdfreference.xml /phpdoc/en/reference/pdo_pgsql reference.xml /phpdoc/en/reference/printerreference.xml /phpdoc/en/reference/ps reference.xml /phpdoc/en/reference/socketsreference.xml /phpdoc/en/reference/uodbc reference.xml /phpdoc/en/reference/wddx reference.xml /phpdoc/en/reference/xmlrpc reference.xml /phpdoc/en/reference/xslt reference.xml /phpdoc/en/reference/zlib reference.xml Log: Fix (see #31733) http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/com/reference.xml?r1=1.12&r2=1.13&diff_format=u Index: phpdoc/en/reference/com/reference.xml diff -u phpdoc/en/reference/com/reference.xml:1.12 phpdoc/en/reference/com/reference.xml:1.13 --- phpdoc/en/reference/com/reference.xml:1.12 Sun Mar 26 20:09:16 2006 +++ phpdoc/en/reference/com/reference.xml Sat Mar 3 22:11:59 2007 @@ -1,5 +1,5 @@ - + @@ -7,6 +7,7 @@ COM and .Net (Windows) COM + &reftitle.intro; @@ -189,6 +190,15 @@ &reference.com.ini; + +&reftitle.resources; + + This extension defines a reference to a COM component returned by + deprecated com_load (this function does not exist in + PHP 5; use the class instead). + + + &reference.com.constants; @@ -205,11 +215,13 @@ of Office. + -&reference.com.functions; + &reference.com.functions; + + @@ -39,6 +39,14 @@ &reference.curl.configure; + +&reftitle.resources; + + This extension defines two resource types: a cURL handle and a cURL multi + handle. + + + &reference.curl.constants; @@ -75,11 +83,13 @@ + -&reference.curl.functions; + &reference.curl.functions; + + @@ -24,13 +24,22 @@ &reference.cyrus.configure; + +&reftitle.resources; + + This extension defines a Cyrus IMAP connection identifier returned by + cyrus_connect. + + + &reference.cyrus.constants; -&reference.cyrus.functions; + &reference.cyrus.functions; + + @@ -33,7 +33,10 @@ &reftitle.resources; -&no.resource; + + expect_popen returns an open PTY stream used by + expect_expectl. + &reference.expect.constants; http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/gmp/reference.xml?r1=1.12&r2=1.13&diff_format=u Index: phpdoc/en/reference/gmp/reference.xml diff -u phpdoc/en/reference/gmp/reference.xml:1.12 phpdoc/en/reference/gmp/reference.xml:1.13 --- phpdoc/en/reference/gmp/reference.xml:1.12 Sun Sep 4 19:39:14 2005 +++ phpdoc/en/reference/gmp/reference.xml Sat Mar 3 22:12:00 2007 @@ -1,5 +1,5 @@ - + @@ -68,7 +68,9 @@ &reftitle.resources; -&no.resource; + + Most GPM functions operate on or return GMP number resources. + &reference.gmp.constants; http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/hash/reference.xml?r1=1.4&r2=1.5&diff_format=u Index: phpdoc/en/reference/hash/reference.xml diff -u phpdoc/en/reference/hash/reference.xml:1.4 phpdoc/en/reference/hash/reference.xml:1.5 --- phpdoc/en/reference/hash/reference.xml:1.4 Mon Feb 27 11:42:26 2006 +++ phpdoc/en/reference/hash/reference.xml Sat Mar 3 22:12:00 2007 @@ -1,5 +1,5 @@ - + @@ -8,6 +8,7 @@ hash + &reftitle.intro; @@ -15,6 +16,7 @@ of arbitrary length messages using a variety of hashing algorithms. + &reftitle.required; @@ -26,10 +28,21 @@ + + &reftitle.resources; + +This extension defines a Hashing Context resource returned by +hash_init. + + + &reference.hash.constants; + + &reference.hash.functions; + + @@ -161,7 +161,18 @@ &reference.http.install; + &reference.http.configuration; + + + &reftitle.resources; + + This extension define
[PHP-DOC] cvs: phpdoc /en/reference/filesystem/functions fwrite.xml
seanSat Mar 3 18:24:01 2007 UTC Modified files: /phpdoc/en/reference/filesystem/functions fwrite.xml Log: add note about atomic fwrites in append mode http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/filesystem/functions/fwrite.xml?r1=1.14&r2=1.15&diff_format=u Index: phpdoc/en/reference/filesystem/functions/fwrite.xml diff -u phpdoc/en/reference/filesystem/functions/fwrite.xml:1.14 phpdoc/en/reference/filesystem/functions/fwrite.xml:1.15 --- phpdoc/en/reference/filesystem/functions/fwrite.xml:1.14Sat Feb 3 08:13:44 2007 +++ phpdoc/en/reference/filesystem/functions/fwrite.xml Sat Mar 3 18:24:00 2007 @@ -1,5 +1,5 @@ - + @@ -41,6 +41,17 @@ fopen mode parameter. + + +If handle was fopened in +append mode, fwrites are atomic (unless the size of +string exceeds the filesystem's block size, on some +platforms, and as long as the file is on a local filesystem). That is, +there is no need to flock a resource before calling +fwrite; all of the data will be written without +interruption. + + A simple fwrite example
[PHP-DOC] Update for the fileinfo description
Hi, The install command on http://ch2.php.net/manual/en/ref.fileinfo.php should be updated to "pecl install fileinfo". "pear" doesn't work anymore for pecl. Regards, Raffael
[PHP-DOC] cvs: php-src(PHP_5_2) / NEWS /ext/spl spl_directory.c
helly Sat Mar 3 15:08:59 2007 UTC Modified files: (Branch: PHP_5_2) /php-srcNEWS /php-src/ext/splspl_directory.c Log: - MFH [DOC] Add SplFileInfo::getBasename(), DirectoryIterator::getBasename - MFH Add SplFileInfo::getLinkTarget(), SplFileInfo::getRealPath() # All based on suggestions by Arnold Daniels http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.567&r2=1.2027.2.547.2.568&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.567 php-src/NEWS:1.2027.2.547.2.568 --- php-src/NEWS:1.2027.2.547.2.567 Sat Mar 3 02:06:43 2007 +++ php-src/NEWSSat Mar 3 15:08:58 2007 @@ -7,6 +7,10 @@ . libmysql (MySQL) to version 5.0.36 - Upgraded SQLite 3 to version 3.3.13 (Ilia) - Upgraded PCRE to version 7.0 (Nuno) +- Improved SPL (Marcus) + . Added SplFileInfo::getBasename(), DirectoryIterator::getBasename(). + . Added SplFileInfo::getLinkTarget(), SplFileInfo::getRealPath(). +# All based on suggestions by Arnold Davies - Added --ri switch to CLI which allows to check extension information. (Marcus) - Added tidyNode::getParent() method (John, Nuno) - Fixed zend_llist_remove_tail (Michael Wallner, Dmitry) http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.45.2.27.2.16&r2=1.45.2.27.2.17&diff_format=u Index: php-src/ext/spl/spl_directory.c diff -u php-src/ext/spl/spl_directory.c:1.45.2.27.2.16 php-src/ext/spl/spl_directory.c:1.45.2.27.2.17 --- php-src/ext/spl/spl_directory.c:1.45.2.27.2.16 Tue Feb 27 03:28:16 2007 +++ php-src/ext/spl/spl_directory.c Sat Mar 3 15:08:59 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: spl_directory.c,v 1.45.2.27.2.16 2007/02/27 03:28:16 iliaa Exp $ */ +/* $Id: spl_directory.c,v 1.45.2.27.2.17 2007/03/03 15:08:59 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -577,6 +577,50 @@ } /* }}} */ +/* {{{ proto string SplFileInfo::getBasename([string $suffix]) U + Returns filename component of path */ +SPL_METHOD(SplFileInfo, getBasename) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + char *fname, *suffix = 0; + int flen, slen = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &suffix, &slen) == FAILURE) { + return; + } + + if (intern->path_len && intern->path_len < intern->file_name_len) { + fname = intern->file_name + intern->path_len + 1; + flen = intern->file_name_len - (intern->path_len + 1); + } else { + fname = intern->file_name; + flen = intern->file_name_len; + } + + php_basename(fname, flen, suffix, slen, &fname, &flen TSRMLS_CC); + + RETURN_STRINGL(fname, flen, 0); +} +/* }}}*/ + +/* {{{ proto string DirectoryIterator::getBasename([string $suffix]) U + Returns filename component of current dir entry */ +SPL_METHOD(DirectoryIterator, getBasename) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + char *suffix = 0, *fname; + int slen = 0, flen; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &suffix, &slen) == FAILURE) { + return; + } + + php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen, &fname, &flen TSRMLS_CC); + + RETURN_STRINGL(fname, flen, 0); +} +/* }}} */ + /* {{{ proto string SplFileInfo::getPathname() Return path and filename */ SPL_METHOD(SplFileInfo, getPathname) @@ -761,6 +805,56 @@ FileInfoFunction(isLink, FS_IS_LINK) /* }}} */ +/* {{{ proto string SplFileInfo::getLinkTarget() U + Return the target of a symbolic link */ +SPL_METHOD(SplFileInfo, getLinkTarget) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + int ret; + char buff[MAXPATHLEN]; + + php_set_error_handling(EH_THROW, spl_ce_RuntimeException TSRMLS_CC); + + ret = readlink(intern->file_name, buff, MAXPATHLEN-1); + + if (ret == -1) { + zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Unable to read link %s, error: %s", intern->file_name, strerror(errno)); + RETVAL_FALSE; + } else { + /* Append NULL to the end of the string */ + buff[ret] = '\0'; + + RETVAL_STRINGL(buff, ret, 1); + } + php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); +} +/* }}} */ + +#if (!defined(__BEOS__) && !defined(NETWARE) && HAVE_REALPATH) || defined(ZTS) +/* {{{ proto string SplFileInfo::getRealPath() + Return the resolved path */ +SPL_METHOD(SplFileInfo, getRealPath) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + char buff[MAXPATHLEN]
[PHP-DOC] cvs: php-src /ext/spl spl_directory.c
helly Sat Mar 3 14:37:17 2007 UTC Modified files: /php-src/ext/splspl_directory.c Log: - [DOC] Add SplInfo::getBasename(), DirectoryIterator::getBasename() http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.121&r2=1.122&diff_format=u Index: php-src/ext/spl/spl_directory.c diff -u php-src/ext/spl/spl_directory.c:1.121 php-src/ext/spl/spl_directory.c:1.122 --- php-src/ext/spl/spl_directory.c:1.121 Mon Feb 26 22:46:13 2007 +++ php-src/ext/spl/spl_directory.c Sat Mar 3 14:37:17 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: spl_directory.c,v 1.121 2007/02/26 22:46:13 helly Exp $ */ +/* $Id: spl_directory.c,v 1.122 2007/03/03 14:37:17 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -656,6 +656,53 @@ } /* }}} */ +/* {{{ proto string SplFileInfo::getBasename([string $suffix]) U + Returns filename component of path */ +SPL_METHOD(SplFileInfo, getBasename) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + zstr fname, suffix; + int flen, slen = 0; + + suffix.v = 0; + if (intern->file_name_type == IS_UNICODE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|t", &suffix.u, &slen) == FAILURE) { + return; + } + } else { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &suffix.s, &slen) == FAILURE) { + return; + } + } + + if (intern->file_name_type == IS_UNICODE) { + php_u_basename(fname.u, flen, suffix.u, slen, &fname.u, &flen TSRMLS_CC); + } else { + php_basename(fname.s, flen, suffix.s, slen, &fname.s, &flen TSRMLS_CC); + } + + RETURN_ZSTRL(intern->file_name_type, fname, flen, 0); +} +/* }}}*/ + +/* {{{ proto string DirectoryIterator::getBasename([string $suffix]) U + Returns filename component of current dir entry */ +SPL_METHOD(DirectoryIterator, getBasename) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + char *suffix = 0, *fname; + int slen = 0, flen; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &suffix, &slen) == FAILURE) { + return; + } + + php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen, &fname, &flen TSRMLS_CC); + + RETURN_RT_STRINGL(fname, flen, ZSTR_AUTOFREE); +} +/* }}} */ + /* {{{ proto string SplFileInfo::getPathname() U Return path and filename */ SPL_METHOD(SplFileInfo, getPathname) @@ -1452,12 +1499,18 @@ ZEND_ARG_INFO(0, class_name) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_optinalSuffix, 0, 0, 0) + ZEND_ARG_INFO(0, suffix) +ZEND_END_ARG_INFO() + /* the method table */ /* each method can have its own parameters and visibility */ static zend_function_entry spl_SplFileInfo_functions[] = { SPL_ME(SplFileInfo, __construct, arginfo_info___construct, ZEND_ACC_PUBLIC) SPL_ME(SplFileInfo, getPath, NULL, ZEND_ACC_PUBLIC) SPL_ME(SplFileInfo, getFilename, NULL, ZEND_ACC_PUBLIC) + SPL_ME(SplFileInfo, getBasename, arginfo_optinalSuffix, ZEND_ACC_PUBLIC) SPL_ME(SplFileInfo, getPathname, NULL, ZEND_ACC_PUBLIC) SPL_ME(SplFileInfo, getPerms, NULL, ZEND_ACC_PUBLIC) SPL_ME(SplFileInfo, getInode, NULL, ZEND_ACC_PUBLIC) @@ -1495,6 +1548,7 @@ static zend_function_entry spl_DirectoryIterator_functions[] = { SPL_ME(DirectoryIterator, __construct, arginfo_dir___construct, ZEND_ACC_PUBLIC) SPL_ME(DirectoryIterator, getFilename, NULL, ZEND_ACC_PUBLIC) + SPL_ME(DirectoryIterator, getBasename, arginfo_optinalSuffix, ZEND_ACC_PUBLIC) SPL_ME(DirectoryIterator, isDot, NULL, ZEND_ACC_PUBLIC) SPL_ME(DirectoryIterator, rewind,NULL, ZEND_ACC_PUBLIC) SPL_ME(DirectoryIterator, valid, NULL, ZEND_ACC_PUBLIC)