helly Thu Sep 15 10:08:17 2005 EDT
Added files: (Branch: PHP_5_1)
/php-src/ext/spl/internal splfileobject.inc
Removed files:
/php-src/ext/spl/internal fileobject.inc
Modified files:
/php-src/ext/spl php_spl.c spl.php spl_directory.c spl_directory.h
/php-src/ext/spl/tests fileobject_001.phpt fileobject_002.phpt
Log:
- Rename file class again by popular demmand: calling it SplFileObject now
http://cvs.php.net/diff.php/php-src/ext/spl/php_spl.c?r1=1.52.2.4&r2=1.52.2.5&ty=u
Index: php-src/ext/spl/php_spl.c
diff -u php-src/ext/spl/php_spl.c:1.52.2.4 php-src/ext/spl/php_spl.c:1.52.2.5
--- php-src/ext/spl/php_spl.c:1.52.2.4 Wed Sep 14 23:33:04 2005
+++ php-src/ext/spl/php_spl.c Thu Sep 15 10:08:14 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_spl.c,v 1.52.2.4 2005/09/15 03:33:04 helly Exp $ */
+/* $Id: php_spl.c,v 1.52.2.5 2005/09/15 14:08:14 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -161,7 +161,6 @@
SPL_ADD_CLASS(DirectoryIterator, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(DomainException, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(EmptyIterator, z_list, sub, allow, ce_flags); \
- SPL_ADD_CLASS(FileObject, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(FilterIterator, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(InfiniteIterator, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(InvalidArgumentException, z_list, sub, allow, ce_flags); \
@@ -183,6 +182,7 @@
SPL_ADD_CLASS(RuntimeException, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(SeekableIterator, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(SimpleXMLIterator, z_list, sub, allow, ce_flags); \
+ SPL_ADD_CLASS(SplFileObject, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(SplObjectStorage, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(SplObserver, z_list, sub, allow, ce_flags); \
SPL_ADD_CLASS(SplSubject, z_list, sub, allow, ce_flags); \
http://cvs.php.net/diff.php/php-src/ext/spl/spl.php?r1=1.49.2.2&r2=1.49.2.3&ty=u
Index: php-src/ext/spl/spl.php
diff -u php-src/ext/spl/spl.php:1.49.2.2 php-src/ext/spl/spl.php:1.49.2.3
--- php-src/ext/spl/spl.php:1.49.2.2 Wed Sep 14 23:33:04 2005
+++ php-src/ext/spl/spl.php Thu Sep 15 10:08:14 2005
@@ -53,7 +53,7 @@
*
* - class DirectoryIterator implements Iterator
* - class RecursiveDirectoryIterator extends DirectoryIterator implements
RecursiveIterator
- * - class FileObject implements RecursiveIterator, SeekableIterator
+ * - class SplFileObject implements RecursiveIterator, SeekableIterator
*
* 3) XML
*
@@ -761,16 +761,16 @@
*/
function __toString();
- /** Open the current file as a FileObject instance
+ /** Open the current file as a SplFileObject instance
*
* @param mode open mode
* @param use_include_path whether to search include paths (don't use)
* @param context resource context to pased to open function
* @throw RuntimeException if file cannot be opened (e.g. insufficient
* access rights).
- * @return The opened file as a FileObject instance
+ * @return The opened file as a SplFileObject instance
*
- * @see FileObject
+ * @see SplFileObject
* @see file()
*/
function DirectoryIterator::openFile($mode = 'r', $use_include_path =
false, $context = NULL);
http://cvs.php.net/diff.php/php-src/ext/spl/spl_directory.c?r1=1.45.2.1&r2=1.45.2.2&ty=u
Index: php-src/ext/spl/spl_directory.c
diff -u php-src/ext/spl/spl_directory.c:1.45.2.1
php-src/ext/spl/spl_directory.c:1.45.2.2
--- php-src/ext/spl/spl_directory.c:1.45.2.1 Wed Sep 14 23:33:04 2005
+++ php-src/ext/spl/spl_directory.c Thu Sep 15 10:08:14 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.c,v 1.45.2.1 2005/09/15 03:33:04 helly Exp $ */
+/* $Id: spl_directory.c,v 1.45.2.2 2005/09/15 14:08:14 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -50,7 +50,7 @@
/* decalre the class entry */
PHPAPI zend_class_entry *spl_ce_DirectoryIterator;
PHPAPI zend_class_entry *spl_ce_RecursiveDirectoryIterator;
-PHPAPI zend_class_entry *spl_ce_FileObject;
+PHPAPI zend_class_entry *spl_ce_SplFileObject;
static zend_object_value spl_file_object_new_ex(zend_class_entry *class_type,
spl_file_object **obj TSRMLS_DC);
static int spl_file_object_open(spl_file_object *intern, int use_include_path,
int silent TSRMLS_DC);
@@ -428,7 +428,7 @@
DirectoryFunction(isLink, FS_IS_LINK)
/* }}} */
-/* {{{ proto FileObject DirectoryIterator::openFile([string mode = 'r' [, bool
use_include_path [, resource context]]])
+/* {{{ proto SplFileObject DirectoryIterator::openFile([string mode = 'r' [,
bool use_include_path [, resource context]]])
Open the current file */
SPL_METHOD(DirectoryIterator, openFile)
{
@@ -445,7 +445,7 @@
return;
}
- return_value->value.obj = spl_file_object_new_ex(spl_ce_FileObject,
&intern TSRMLS_CC);
+ return_value->value.obj = spl_file_object_new_ex(spl_ce_SplFileObject,
&intern TSRMLS_CC);
spl_dir_get_path_name(dir_obj);
intern->file_name = dir_obj->path_name;
@@ -979,7 +979,7 @@
zval *retval;
/* if overloaded call the function, otherwise do it directly */
- if (intern->func_getCurr->common.scope != spl_ce_FileObject) {
+ if (intern->func_getCurr->common.scope != spl_ce_SplFileObject) {
if (php_stream_eof(intern->stream)) {
if (!silent) {
zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Cannot read from
file %s", intern->file_name);
@@ -1047,9 +1047,9 @@
return SUCCESS;
} /* }}} */
-/* {{{ proto void FileObject::__construct(string filename [, string mode = 'r'
[, bool use_include_path [, resource context]]]])
+/* {{{ proto void SplFileObject::__construct(string filename [, string mode =
'r' [, bool use_include_path [, resource context]]]])
Construct a new file reader */
-SPL_METHOD(FileObject, __construct)
+SPL_METHOD(SplFileObject, __construct)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_bool use_include_path = 0;
@@ -1072,45 +1072,45 @@
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
} /* }}} */
-/* {{{ proto void FileObject::rewind()
+/* {{{ proto void SplFileObject::rewind()
Rewind the file and read the first line */
-SPL_METHOD(FileObject, rewind)
+SPL_METHOD(SplFileObject, rewind)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
spl_file_object_rewind(intern TSRMLS_CC);
} /* }}} */
-/* {{{ proto string FileObject::getFilename()
+/* {{{ proto string SplFileObject::getFilename()
Return the filename */
-SPL_METHOD(FileObject, getFilename)
+SPL_METHOD(SplFileObject, getFilename)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
RETURN_STRINGL(intern->file_name, intern->file_name_len, 1);
} /* }}} */
-/* {{{ proto void FileObject::eof()
+/* {{{ proto void SplFileObject::eof()
Return whether end of file is reached */
-SPL_METHOD(FileObject, eof)
+SPL_METHOD(SplFileObject, eof)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
RETURN_BOOL(php_stream_eof(intern->stream));
} /* }}} */
-/* {{{ proto void FileObject::valid()
+/* {{{ proto void SplFileObject::valid()
Return !eof() */
-SPL_METHOD(FileObject, valid)
+SPL_METHOD(SplFileObject, valid)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
RETVAL_BOOL(!php_stream_eof(intern->stream));
} /* }}} */
-/* {{{ proto string FileObject::fgets()
+/* {{{ proto string SplFileObject::fgets()
Rturn next line from file */
-SPL_METHOD(FileObject, fgets)
+SPL_METHOD(SplFileObject, fgets)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1120,9 +1120,9 @@
RETURN_STRINGL(intern->current_line, intern->current_line_len, 1);
} /* }}} */
-/* {{{ proto string FileObject::current()
+/* {{{ proto string SplFileObject::current()
Return current line from file */
-SPL_METHOD(FileObject, current)
+SPL_METHOD(SplFileObject, current)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1137,9 +1137,9 @@
RETURN_FALSE;
} /* }}} */
-/* {{{ proto int FileObject::key()
+/* {{{ proto int SplFileObject::key()
Return line number */
-SPL_METHOD(FileObject, key)
+SPL_METHOD(SplFileObject, key)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1150,9 +1150,9 @@
RETURN_LONG(intern->current_line_num);
} /* }}} */
-/* {{{ proto void FileObject::next()
+/* {{{ proto void SplFileObject::next()
Read next line */
-SPL_METHOD(FileObject, next)
+SPL_METHOD(SplFileObject, next)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1160,27 +1160,27 @@
intern->current_line_num++;
} /* }}} */
-/* {{{ proto void FileObject::setFlags(int flags)
+/* {{{ proto void SplFileObject::setFlags(int flags)
Set file handling flags */
-SPL_METHOD(FileObject, setFlags)
+SPL_METHOD(SplFileObject, setFlags)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &intern->flags);
} /* }}} */
-/* {{{ proto int FileObject::getFlags()
+/* {{{ proto int SplFileObject::getFlags()
Get file handling flags */
-SPL_METHOD(FileObject, getFlags)
+SPL_METHOD(SplFileObject, getFlags)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
RETURN_LONG(intern->flags);
} /* }}} */
-/* {{{ proto void FileObject::setMaxLineLen(int max_len)
+/* {{{ proto void SplFileObject::setMaxLineLen(int max_len)
Set maximum line length */
-SPL_METHOD(FileObject, setMaxLineLen)
+SPL_METHOD(SplFileObject, setMaxLineLen)
{
long max_len;
@@ -1198,9 +1198,9 @@
intern->max_line_len = max_len;
} /* }}} */
-/* {{{ proto int FileObject::getMaxLineLen()
+/* {{{ proto int SplFileObject::getMaxLineLen()
Get maximum line length */
-SPL_METHOD(FileObject, getMaxLineLen)
+SPL_METHOD(SplFileObject, getMaxLineLen)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1209,14 +1209,14 @@
/* {{{ proto bool hasChildren()
Rturn false */
-SPL_METHOD(FileObject, hasChildren)
+SPL_METHOD(SplFileObject, hasChildren)
{
RETURN_FALSE;
} /* }}} */
-/* {{{ proto bool FileObject::getChildren()
+/* {{{ proto bool SplFileObject::getChildren()
Read NULL */
-SPL_METHOD(FileObject, getChildren)
+SPL_METHOD(SplFileObject, getChildren)
{
/* return NULL */
} /* }}} */
@@ -1273,16 +1273,16 @@
/* {{{ FileFunction */
#define FileFunction(func_name) \
-SPL_METHOD(FileObject, func_name) \
+SPL_METHOD(SplFileObject, func_name) \
{ \
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC); \
FileFunctionCall(func_name, NULL); \
}
/* }}} */
-/* {{{ proto array FileObject::fgetcsv([string delimiter [, string enclosure]])
+/* {{{ proto array SplFileObject::fgetcsv([string delimiter [, string
enclosure]])
Return current line as csv */
-SPL_METHOD(FileObject, fgetcsv)
+SPL_METHOD(SplFileObject, fgetcsv)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zval *arg2 = NULL;
@@ -1298,14 +1298,14 @@
}
/* }}} */
-/* {{{ proto bool FileObject::flock(int operation [, int &wouldblock])
+/* {{{ proto bool SplFileObject::flock(int operation [, int &wouldblock])
Portable file locking */
FileFunction(flock)
/* }}} */
-/* {{{ proto bool FileObject::fflush()
+/* {{{ proto bool SplFileObject::fflush()
Flush the file */
-SPL_METHOD(FileObject, fflush)
+SPL_METHOD(SplFileObject, fflush)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1313,9 +1313,9 @@
} /* }}} */
-/* {{{ proto int FileObject::ftell()
+/* {{{ proto int SplFileObject::ftell()
Return current file position */
-SPL_METHOD(FileObject, ftell)
+SPL_METHOD(SplFileObject, ftell)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
long ret = php_stream_tell(intern->stream);
@@ -1327,9 +1327,9 @@
}
} /* }}} */
-/* {{{ proto int FileObject::fseek(int pos [, int whence = SEEK_SET])
+/* {{{ proto int SplFileObject::fseek(int pos [, int whence = SEEK_SET])
Return current file position */
-SPL_METHOD(FileObject, fseek)
+SPL_METHOD(SplFileObject, fseek)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
long pos, whence = SEEK_SET;
@@ -1342,9 +1342,9 @@
RETURN_LONG(php_stream_seek(intern->stream, pos, whence));
} /* }}} */
-/* {{{ proto int FileObject::fgetc()
+/* {{{ proto int SplFileObject::fgetc()
Get a character form the file */
-SPL_METHOD(FileObject, fgetc)
+SPL_METHOD(SplFileObject, fgetc)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
char buf[2];
@@ -1367,9 +1367,9 @@
}
} /* }}} */
-/* {{{ proto string FileObject::fgetss([string allowable_tags])
+/* {{{ proto string SplFileObject::fgetss([string allowable_tags])
Get a line from file pointer and strip HTML tags */
-SPL_METHOD(FileObject, fgetss)
+SPL_METHOD(SplFileObject, fgetss)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zval *arg2 = NULL;
@@ -1384,18 +1384,18 @@
zval_ptr_dtor(&arg2);
} /* }}} */
-/* {{{ proto int FileObject::fpassthru()
+/* {{{ proto int SplFileObject::fpassthru()
Output all remaining data from a file pointer */
-SPL_METHOD(FileObject, fpassthru)
+SPL_METHOD(SplFileObject, fpassthru)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
RETURN_LONG(php_stream_passthru(intern->stream));
} /* }}} */
-/* {{{ proto bool FileObject::fscanf(string format [, string ...])
+/* {{{ proto bool SplFileObject::fscanf(string format [, string ...])
Implements a mostly ANSI compatible fscanf() */
-SPL_METHOD(FileObject, fscanf)
+SPL_METHOD(SplFileObject, fscanf)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
@@ -1406,9 +1406,9 @@
}
/* }}} */
-/* {{{ proto mixed FileObject::fwrite(string str [, int length])
+/* {{{ proto mixed SplFileObject::fwrite(string str [, int length])
Binary-safe file write */
-SPL_METHOD(FileObject, fwrite)
+SPL_METHOD(SplFileObject, fwrite)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
char *str;
@@ -1438,14 +1438,14 @@
RETURN_LONG(php_stream_write(intern->stream, str, str_len));
} /* }}} */
-/* {{{ proto bool FileObject::fstat()
+/* {{{ proto bool SplFileObject::fstat()
Stat() on a filehandle */
FileFunction(fstat)
/* }}} */
-/* {{{ proto bool FileObject::ftruncate(int size)
+/* {{{ proto bool SplFileObject::ftruncate(int size)
Truncate file to 'size' length */
-SPL_METHOD(FileObject, ftruncate)
+SPL_METHOD(SplFileObject, ftruncate)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
long size;
@@ -1462,9 +1462,9 @@
RETURN_BOOL(0 == php_stream_truncate_set_size(intern->stream, size));
} /* }}} */
-/* {{{ proto void FileObject::seek(int line_pos)
+/* {{{ proto void SplFileObject::seek(int line_pos)
Seek to specified line */
-SPL_METHOD(FileObject, seek)
+SPL_METHOD(SplFileObject, seek)
{
spl_file_object *intern =
(spl_file_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
long line_pos;
@@ -1547,37 +1547,37 @@
ZEND_END_ARG_INFO();
static zend_function_entry spl_file_object_class_functions[] = {
- SPL_ME(FileObject, __construct, arginfo_file_object___construct,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, getFilename, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, eof, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, valid, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fgets, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fgetcsv, arginfo_file_object_fgetcsv,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, flock, arginfo_file_object_flock,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fflush, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, ftell, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fseek, arginfo_file_object_fseek,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fgetc, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fpassthru, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fgetss, arginfo_file_object_fgetss,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fscanf, arginfo_file_object_fscanf,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fwrite, arginfo_file_object_fwrite,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, fstat, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, ftruncate, arginfo_file_object_ftruncate,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, current, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, key, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, next, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, setFlags, arginfo_file_object_setFlags,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, getFlags, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, setMaxLineLen, arginfo_file_object_setMaxLineLen,
ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, getMaxLineLen, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, hasChildren, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, getChildren, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(FileObject, seek, arginfo_file_object_seek,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, __construct, arginfo_file_object___construct,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, getFilename, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, rewind, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, eof, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, valid, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fgets, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fgetcsv, arginfo_file_object_fgetcsv,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, flock, arginfo_file_object_flock,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fflush, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, ftell, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fseek, arginfo_file_object_fseek,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fgetc, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fpassthru, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fgetss, arginfo_file_object_fgetss,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fscanf, arginfo_file_object_fscanf,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fwrite, arginfo_file_object_fwrite,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, fstat, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, ftruncate, arginfo_file_object_ftruncate,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, current, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, key, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, next, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, setFlags, arginfo_file_object_setFlags,
ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, getFlags, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, setMaxLineLen,
arginfo_file_object_setMaxLineLen, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, getMaxLineLen, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, hasChildren, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, getChildren, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFileObject, seek, arginfo_file_object_seek,
ZEND_ACC_PUBLIC)
// mappings
- SPL_MA(FileObject, getCurrentLine, FileObject, fgets, NULL,
ZEND_ACC_PUBLIC)
- SPL_MA(FileObject, __toString, FileObject, current, NULL,
ZEND_ACC_PUBLIC)
+ SPL_MA(SplFileObject, getCurrentLine, SplFileObject, fgets, NULL,
ZEND_ACC_PUBLIC)
+ SPL_MA(SplFileObject, __toString, SplFileObject, current, NULL,
ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
@@ -1598,11 +1598,11 @@
spl_ce_RecursiveDirectoryIterator->get_iterator =
spl_ce_dir_tree_get_iterator;
- REGISTER_SPL_STD_CLASS_EX(FileObject, spl_file_object_new,
spl_file_object_class_functions);
- REGISTER_SPL_IMPLEMENTS(FileObject, RecursiveIterator);
- REGISTER_SPL_IMPLEMENTS(FileObject, SeekableIterator);
+ REGISTER_SPL_STD_CLASS_EX(SplFileObject, spl_file_object_new,
spl_file_object_class_functions);
+ REGISTER_SPL_IMPLEMENTS(SplFileObject, RecursiveIterator);
+ REGISTER_SPL_IMPLEMENTS(SplFileObject, SeekableIterator);
- REGISTER_SPL_CLASS_CONST_LONG(FileObject, "DROP_NEW_LINE",
SPL_FILE_OBJECT_DROP_NEW_LINE);
+ REGISTER_SPL_CLASS_CONST_LONG(SplFileObject, "DROP_NEW_LINE",
SPL_FILE_OBJECT_DROP_NEW_LINE);
return SUCCESS;
}
http://cvs.php.net/diff.php/php-src/ext/spl/spl_directory.h?r1=1.12&r2=1.12.2.1&ty=u
Index: php-src/ext/spl/spl_directory.h
diff -u php-src/ext/spl/spl_directory.h:1.12
php-src/ext/spl/spl_directory.h:1.12.2.1
--- php-src/ext/spl/spl_directory.h:1.12 Wed Aug 3 10:07:53 2005
+++ php-src/ext/spl/spl_directory.h Thu Sep 15 10:08:14 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.h,v 1.12 2005/08/03 14:07:53 sniper Exp $ */
+/* $Id: spl_directory.h,v 1.12.2.1 2005/09/15 14:08:14 helly Exp $ */
#ifndef SPL_DIRECTORY_H
#define SPL_DIRECTORY_H
@@ -26,7 +26,7 @@
extern PHPAPI zend_class_entry *spl_ce_DirectoryIterator;
extern PHPAPI zend_class_entry *spl_ce_RecursiveDirectoryIterator;
-extern PHPAPI zend_class_entry *spl_ce_FileObject;
+extern PHPAPI zend_class_entry *spl_ce_SplFileObject;
PHP_MINIT_FUNCTION(spl_directory);
http://cvs.php.net/diff.php/php-src/ext/spl/tests/fileobject_001.phpt?r1=1.1.2.1&r2=1.1.2.2&ty=u
Index: php-src/ext/spl/tests/fileobject_001.phpt
diff -u php-src/ext/spl/tests/fileobject_001.phpt:1.1.2.1
php-src/ext/spl/tests/fileobject_001.phpt:1.1.2.2
--- php-src/ext/spl/tests/fileobject_001.phpt:1.1.2.1 Wed Sep 14 23:33:04 2005
+++ php-src/ext/spl/tests/fileobject_001.phpt Thu Sep 15 10:08:16 2005
@@ -1,13 +1,13 @@
--TEST--
-SPL: FileObject::seek'ing
+SPL: SplFileObject::seek'ing
--FILE--
<?php
-$o = new FileObject(dirname(__FILE__) . '/fileobject_001a.txt');
+$o = new SplFileObject(dirname(__FILE__) . '/fileobject_001a.txt');
var_dump($o->key());
var_dump($o->current());
-$o->setFlags(FileObject::DROP_NEW_LINE);
+$o->setFlags(SplFileObject::DROP_NEW_LINE);
var_dump($o->key());
var_dump($o->current());
var_dump($o->key());
@@ -31,8 +31,8 @@
}
echo "===B===\n";
-$o = new FileObject(dirname(__FILE__) . '/fileobject_001b.txt');
-$o->setFlags(FileObject::DROP_NEW_LINE);
+$o = new SplFileObject(dirname(__FILE__) . '/fileobject_001b.txt');
+$o->setFlags(SplFileObject::DROP_NEW_LINE);
foreach($o as $n => $l)
{
var_dump($n, $l);
http://cvs.php.net/diff.php/php-src/ext/spl/tests/fileobject_002.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/spl/tests/fileobject_002.phpt
diff -u php-src/ext/spl/tests/fileobject_002.phpt:1.1
php-src/ext/spl/tests/fileobject_002.phpt:1.1.2.1
--- php-src/ext/spl/tests/fileobject_002.phpt:1.1 Tue May 3 18:18:19 2005
+++ php-src/ext/spl/tests/fileobject_002.phpt Thu Sep 15 10:08:16 2005
@@ -1,5 +1,5 @@
--TEST--
-SPL: FileObject::fgetc
+SPL: SplFileObject::fgetc
--FILE--
<?php
@@ -7,7 +7,7 @@
{
echo "===$name===\n";
- $o = new FileObject(dirname(__FILE__) . '/' . $name);
+ $o = new SplFileObject(dirname(__FILE__) . '/' . $name);
var_dump($o->key());
while(($c = $o->fgetc()) !== false)
http://cvs.php.net/co.php/php-src/ext/spl/internal/splfileobject.inc?r=1.1&p=1
Index: php-src/ext/spl/internal/splfileobject.inc
+++ php-src/ext/spl/internal/splfileobject.inc
<?php
/** @file splfileobject.inc
* @ingroup SPL
* @brief class FileObject
* @author Marcus Boerger
* @date 2003 - 2005
*
* SPL - Standard PHP Library
*/
/** @ingroup SPL
* @brief Object representation for any stream
* @author Marcus Boerger
* @version 1.0
* @since PHP 5.1
*/
class SplFileObject implements RecursiveIterator, SeekableIterator
{
/** Flag: wheter to suppress new lines */
const DROP_NEW_LINE = 0x00000001;
private $fp;
private $fname;
private $line = NULL;
private $lnum = 0;
private $max_len = 0;
private $flags = 0;
/**
* Constructs a new file object
*
* @param $file_name The name of the stream to open
* @param $open_mode The file open mode
* @param $use_include_path Whether to search in include paths
* @param $context A stream context
* @throw RuntimeException If file cannot be opened (e.g.
insufficient
* access rights).
*/
function __construct($file_name, $open_mode = 'r', $use_include_path =
false, $context = NULL)
{
$this->fp = fopen($file_name, $open_mode, $use_include_path,
$context);
if (!$this->fp)
{
throw new RuntimeException("Cannot open file
$file_name");
}
$this->fname = $file_name;
}
/**
* @return the filename as specified in the constructor
*/
function getFilename()
{
return $this->fname;
}
/**
* @return whether the end of the stream is reached
*/
function eof()
{
return eof($this->fp);
}
/** increase current line number
* @return next line from stream
*/
function fgets()
{
$this->freeLine();
$this->lnum++;
$buf = fgets($this->fp, $this->max_len);
return $buf;
}
/**
* @param delimiter character used as field separator
* @param enclosure end of
* @return array containing read data
*/
function fgetcsv($delimiter = ';', $enclosure = '')
{
$this->freeLine();
$this->lnum++;
return fgetcsv($this->fp, $this->max_len, $delimiter,
$enclosure);
}
/**
* @param operation lock operation (LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB)
* @retval $wouldblock whether the operation would block
*/
function flock($operation, &$wouldblock)
{
return flock($this->fp, $operation, $wouldblock);
}
/**
* Flush current data
* @return success or failure
*/
function fflush()
{
return fflush($this->fp);
}
/**
* @return current file position
*/
function ftell()
{
return ftell($this->fp);
}
/**
* @param pos new file position
* @param whence seek method (SEEK_SET, SEEK_CUR, SEEK_END)
* @return Upon success, returns 0; otherwise, returns -1. Note that
* seeking past EOF is not considered an error.
*/
function fseek($pos, $whence = SEEK_SET)
{
return fseek($this->fp, $pos, $whence);
}
/**
* @return next char from file
* @note a new line character does not increase $this->lnum
*/
function fgetc()
{
$this->freeLine();
$c = fgetc($this->fp);
if ($c == '\n') {
$this->lnum++;
}
}
/** Read and return remaining part of stream
* @return size of remaining part passed through
*/
function fpassthru()
{
return fpassthru($this->fp);
}
/** Get a line from the file and strip HTML tags
* @param $allowable_tags tags to keep in the string
*/
function fgetss($allowable_tags = NULL)
{
return fgetss($this->fp, $allowable_tags);
}
/** Scan the next line
* @param $format string specifying format to parse
*/
function fscanf($format /* , ... */)
{
$this->freeLine();
$this->lnum++;
return fscanf($this->fp, $format /* , ... */);
}
/**
* @param $str to write
* @param $length maximum line length to write
*/
function fwrite($str, $length = NULL)
{
return fwrite($this->fp, $length);
}
/**
* @return array of file stat information
*/
function fstat()
{
return fstat($this->fp);
}
/**
* @param $size new size to truncate file to
*/
function ftruncate($size)
{
return ftruncate($this->fp, $size);
}
/**
* @param $flags new flag set
*/
function setFlags($flags)
{
$this->flags = $flags;
}
/**
* @return current set of flags
*/
function getFlags()
{
return $this->flags;
}
/**
* @param $max_len set the maximum line length read
*/
function setMaxLineLen($max_len)
{
$this->max_len = $max_len;
}
/**
* @return current setting for max line
*/
function getMaxLineLen()
{
return $this->max_len;
}
/**
* @return false
*/
function hasChildren()
{
return false;
}
/**
* @return false
*/
function getChildren()
{
return NULL;
}
/**
* Invalidate current line buffer and set line number to 0.
*/
function rewind()
{
$this->freeLine();
$this->lnum = 0;
}
/**
* @return whether more data can be read
*/
function valid()
{
return !$this->eof();
}
/**
* @note Fill current line buffer if not done yet.
* @return line buffer
*/
function current()
{
if (is_null($this->line))
{
$this->line = getCurrentLine();
}
return $this->line;
}
/**
* @return line number
* @note fgetc() will increase the line number when reaing a new line
char.
* This has the effect key() called on a read a new line will
already
* return the increased line number.
* @note Line counting works as long as you only read the file and do
not
* use fseek().
*/
function key()
{
return $this->lnum;
}
/** Invalidate current line buffer.
*/
function next()
{
$this->freeLine();
}
/**
* @return next line read from file and increase the line counter
*/
private function readLine()
{
if ($this->eof())
{
$this->freeLine();
throw new RuntimeException("Cannot read from file " .
$this->fname);
}
if ($this->line) {
$this->lnum++;
}
$this->freeLine();
$this->line = fgets($this->fp, $this->max_len);
return $this->line;
}
/**
* Free the current line buffer and increment the line counter
*/
private function freeLine()
{
if ($this->line) {
$this->line = NULL;
}
}
/*
* @note If you DO overload this function key() and current() will
increment
* $this->lnum automatically. If not then function reaLine() will
do
* that for you.
*/
function getCurrentLine()
{
$this->freeLine();
if ($this->eof())
{
throw new RuntimeException("Cannot read from file " .
$this->fname);
}
$this->readLine();
}
/**
* @return current line
*/
function __toString()
{
return current();
}
/**
* @param $line_pos Seek to this line
*/
function seek($line_pos)
{
$this->rewind();
while($this->lnum < $line_pos && !$this->eof())
{
$this->getCurrentLine();
}
}
}
?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php