hnd = zend_hash_find_ptr(obj->prop_handler, name);
}
if (hnd != NULL) {
- php_error_docref(NULL, E_WARNING, "Cannot write to read-only property");
+ zend_throw_error(NULL, "Cannot write to read-only property");
} else {
value = zend_std_write_property(object, name, value, cache_slot);
}
}
if (!name_len) {
- php_error_docref(NULL, E_WARNING, "Argument cannot be an empty string");
- RETURN_FALSE;
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
}
id = ZEND_THIS;
}
if (source != NULL && !source_len) {
- php_error_docref(NULL, E_WARNING, "Schema data source is required");
- RETURN_FALSE;
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
}
id = ZEND_THIS;
intern->schema = schema;
RETURN_TRUE;
+ } else {
+ php_error_docref(NULL, E_WARNING, "Schema contains errors");
+ RETURN_FALSE;
}
+ } else {
+ zend_throw_error(NULL, "Schema must be set prior to reading");
+ RETURN_THROWS();
}
-
- php_error_docref(NULL, E_WARNING, "Unable to set schema. This must be set prior to reading or schema contains errors.");
-
- RETURN_FALSE;
#else
- php_error_docref(NULL, E_WARNING, "No Schema support built into libxml.");
-
+ php_error_docref(NULL, E_WARNING, "No schema support built into libxml");
RETURN_FALSE;
#endif
}
RETURN_THROWS();
}
- if (name_len == 0 || ns_uri_len == 0) {
- php_error_docref(NULL, E_WARNING, "Attribute Name and Namespace URI cannot be empty");
- RETURN_FALSE;
+ if (name_len == 0) {
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
+ }
+
+ if (ns_uri_len == 0) {
+ zend_argument_value_error(2, "cannot be empty");
+ RETURN_THROWS();
}
id = ZEND_THIS;
retval = xmlTextReaderGetParserProp(intern->ptr,property);
}
if (retval == -1) {
- php_error_docref(NULL, E_WARNING, "Invalid parser property");
- RETURN_FALSE;
+ zend_argument_value_error(1, "must be a valid parser property");
+ RETURN_THROWS();
}
RETURN_BOOL(retval);
}
if (name_len == 0) {
- php_error_docref(NULL, E_WARNING, "Attribute Name is required");
- RETURN_FALSE;
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
}
id = ZEND_THIS;
RETURN_THROWS();
}
- if (name_len == 0 || ns_uri_len == 0) {
- php_error_docref(NULL, E_WARNING, "Attribute Name and Namespace URI cannot be empty");
- RETURN_FALSE;
+ if (name_len == 0) {
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
+ }
+
+ if (ns_uri_len == 0) {
+ zend_argument_value_error(2, "cannot be empty");
+ RETURN_THROWS();
}
id = ZEND_THIS;
id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
- if (intern != NULL && intern->ptr != NULL) {
- retval = xmlTextReaderRead(intern->ptr);
- if (retval == -1) {
- RETURN_FALSE;
- } else {
- RETURN_BOOL(retval);
- }
+ if (intern == NULL || intern->ptr == NULL) {
+ zend_throw_error(NULL, "Data must be loaded before reading");
+ RETURN_THROWS();
}
- php_error_docref(NULL, E_WARNING, "Load Data before trying to read");
- RETURN_FALSE;
+ retval = xmlTextReaderRead(intern->ptr);
+ if (retval == -1) {
+ RETURN_FALSE;
+ } else {
+ RETURN_BOOL(retval);
+ }
}
/* }}} */
}
}
- php_error_docref(NULL, E_WARNING, "Load Data before trying to read");
- RETURN_FALSE;
+ zend_throw_error(NULL, "Data must be loaded before reading");
}
/* }}} */
}
if (!source_len) {
- php_error_docref(NULL, E_WARNING, "Empty string supplied as input");
- RETURN_FALSE;
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
}
valid_file = _xmlreader_get_valid_file_path(source, resolved_path, MAXPATHLEN );
}
if (source != NULL && !source_len) {
- php_error_docref(NULL, E_WARNING, "Schema data source is required");
- RETURN_FALSE;
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
}
id = ZEND_THIS;
if (retval == 0) {
RETURN_TRUE;
+ } else {
+ php_error_docref(NULL, E_WARNING, "Schema contains errors");
+ RETURN_FALSE;
}
+ } else {
+ zend_throw_error(NULL, "Schema must be set prior to reading");
+ RETURN_THROWS();
}
-
- php_error_docref(NULL, E_WARNING, "Unable to set schema. This must be set prior to reading or schema contains errors.");
-
- RETURN_FALSE;
#else
- php_error_docref(NULL, E_WARNING, "No Schema support built into libxml.");
-
+ php_error_docref(NULL, E_WARNING, "No schema support built into libxml");
RETURN_FALSE;
#endif
}
retval = xmlTextReaderSetParserProp(intern->ptr,property, value);
}
if (retval == -1) {
- php_error_docref(NULL, E_WARNING, "Invalid parser property");
- RETURN_FALSE;
+ zend_argument_value_error(1, "must be a valid parser property");
+ RETURN_THROWS();
}
RETURN_TRUE;
}
if (!source_len) {
- php_error_docref(NULL, E_WARNING, "Empty string supplied as input");
- RETURN_FALSE;
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
}
inputbfr = xmlParserInputBufferCreateMem(source, source_len, XML_CHAR_ENCODING_NONE);
node = xmlTextReaderExpand(intern->ptr);
if (node == NULL) {
- php_error_docref(NULL, E_WARNING, "An Error Occurred while expanding ");
+ php_error_docref(NULL, E_WARNING, "An Error Occurred while expanding");
RETURN_FALSE;
} else {
nodec = xmlDocCopyNode(node, docp, 1);
}
}
} else {
- php_error_docref(NULL, E_WARNING, "Load Data before trying to expand");
- RETURN_FALSE;
+ zend_throw_error(NULL, "Data must be loaded before expanding");
+ RETURN_THROWS();
}
#else
php_error(E_WARNING, "DOM support is not enabled");
/** @return bool */
public function close() {}
- /** @return string|null|false */
+ /** @return string|null */
public function getAttribute(string $name) {}
/** @return string|null */
/** @return bool */
public function isValid() {}
- /** @return string|null|false */
+ /** @return string|null */
public function lookupNamespace(string $prefix) {}
/** @return bool */
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 8bdec18c4ad8574fb1d3e4baca928949d5ec2438 */
+ * Stub hash: 90e6d525ba87399c54f36965ebf18dbf65084617 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_XMLReader_close, 0, 0, 0)
ZEND_END_ARG_INFO()
}
$xmlstring = '';
$reader = new XMLReader();
-$reader->XML($xmlstring);
+
+try {
+ $reader->XML($xmlstring);
+} catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+}
+
?>
---EXPECTF--
+--EXPECT--
books
books
-
-Warning: XMLReader::XML(): Empty string supplied as input in %s on line %d
+XMLReader::XML(): Argument #1 ($source) cannot be empty
file_put_contents($filename, $xmlstring);
$reader = new XMLReader();
-if ($reader->open('')) exit();
+try {
+ $reader->open('');
+} catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+}
$reader = new XMLReader();
if (!$reader->open($filename)) {
unlink($filename);
?>
---EXPECTF--
-Warning: XMLReader::open(): Empty string supplied as input in %s on line %d
+--EXPECT--
+XMLReader::open(): Argument #1 ($URI) cannot be empty
books
books
echo $reader->value . "\n";
// Test for call with an empty string argument
- $attr = $reader->getAttribute('');
- var_dump($attr);
+ try {
+ $reader->getAttribute('');
+ } catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+ }
+
// Ensure that node pointer has not changed position
echo $reader->name . ": ";
echo $reader->value . "\n";
<?php
unlink(__DIR__.'/003-get-errors.xml');
?>
---EXPECTF--
+--EXPECT--
book
bool(true)
num: 1
-
-Warning: XMLReader::getAttribute(): Argument cannot be an empty string in %s on line %d
-bool(false)
+XMLReader::getAttribute(): Argument #1 ($name) cannot be empty
num: 1
NULL
num: 1
echo $reader->value . "\n";
// Test for call with an empty string argument
- $attr = $reader->moveToAttribute('');
- var_dump($attr);
+ try {
+ $reader->moveToAttribute('');
+ } catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+ }
+
// Ensure that node pointer has not changed position
echo $reader->name . ": ";
echo $reader->value . "\n";
<?php
unlink(__DIR__.'/003-move-errors.xml');
?>
---EXPECTF--
+--EXPECT--
book
bool(true)
num: 1
-
-Warning: XMLReader::moveToAttribute(): Attribute Name is required in %s on line %d
-bool(false)
+XMLReader::moveToAttribute(): Argument #1 ($name) cannot be empty
num: 1
bool(false)
num: 1
var_dump($reader->moveToAttributeNo(20));
var_dump($reader->moveToAttribute('missing-attribute'));
- var_dump($reader->moveToAttribute(''));
+ try {
+ $reader->moveToAttribute('');
+ } catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+ }
}
}
}
$reader->close();
unlink($filename);
?>
---EXPECTF--
+--EXPECT--
num: 1
idx: 2
num: 1
idx: 2
bool(false)
bool(false)
-
-Warning: XMLReader::moveToAttribute(): Attribute Name is required in %s on line %d
-bool(false)
+XMLReader::moveToAttribute(): Argument #1 ($name) cannot be empty
$reader = new XMLReader();
$reader->XML($xmlstring);
-if ($reader->setRelaxNGSchema('')) {
- echo 'failed';
+try {
+ $reader->setRelaxNGSchema('');
+} catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
}
+
$reader->close();
?>
---EXPECTF--
+--EXPECT--
file relaxNG: ok
string relaxNG: ok
-
-Warning: XMLReader::setRelaxNGSchema(): Schema data source is required in %s on line %d
+XMLReader::setRelaxNGSchema(): Argument #1 ($filename) cannot be empty
// Find a node to try modifying
if ($reader->nodeType == XMLREADER::ELEMENT && $reader->name == 'book') {
// Try to set the value of the element from book1 to movie1
- $reader->value = 'movie1';
+ try {
+ $reader->value = 'movie1';
+ } catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+ }
// Try to set the value of the first "num" attribute from "1" to "num attribute 1"
$attr = $reader->moveToFirstAttribute();
- $reader->value = 'num attribute 1';
+ try {
+ $reader->value = 'num attribute 1';
+ } catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+ }
// Try to set the name of the first attribute from "num" to "number"
- $reader->name = 'number';
+ try {
+ $reader->name = 'number';
+ } catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+ }
}
}
}
<?php
unlink(__DIR__.'/_014.xml');
?>
---EXPECTF--
-Warning: main(): Cannot write to read-only property in %s on line %d
-
-Warning: main(): Cannot write to read-only property in %s on line %d
-
-Warning: main(): Cannot write to read-only property in %s on line %d
+--EXPECT--
+Cannot write to read-only property
+Cannot write to read-only property
+Cannot write to read-only property
$attr = $reader->moveToNextAttribute();
// Test for missing namespace argument
- $attr = $reader->getAttributeNs('idx', null);
- var_dump($attr);
+ try {
+ $attr = $reader->getAttributeNs('idx', null);
+ } catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+ }
+
echo $reader->name . ": ";
echo $reader->value . "\n";
}
<?php
unlink(__DIR__.'/015-get-errors.xml');
?>
---EXPECTF--
-Warning: XMLReader::getAttributeNs(): Attribute Name and Namespace URI cannot be empty in %s on line %d
-bool(false)
+--EXPECT--
+XMLReader::getAttributeNs(): Argument #2 ($namespaceURI) cannot be empty
ns1:num: 1
// Find the book node
if ($reader->nodeType == XMLREADER::ELEMENT && $reader->name == 'book') {
// Test for missing namespace argument
- $attr = $reader->moveToAttributeNs('idx', null);
+ try {
+ $reader->moveToAttributeNs('idx', null);
+ } catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+ }
}
}
}
<?php
unlink(__DIR__.'/015-move-errors.xml');
?>
---EXPECTF--
-Warning: XMLReader::moveToAttributeNs(): Attribute Name and Namespace URI cannot be empty in %s on line %d
+--EXPECT--
+XMLReader::moveToAttributeNs(): Argument #2 ($namespaceURI) cannot be empty
<books><book>new book</book></books>';
$reader = new XMLReader();
-var_dump($reader->expand());
+
+try {
+ $reader->expand();
+} catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+}
+
$reader->close();
$reader = new XMLReader();
$reader->close();
?>
--EXPECTF--
-Warning: XMLReader::expand(): Load Data before trying to expand in %s on line %d
-bool(false)
+Data must be loaded before expanding
-Warning: XMLReader::expand(): An Error Occurred while expanding in %s on line %d
+Warning: XMLReader::expand(): An Error Occurred while expanding in %s on line %d
bool(false)
<node2><sub /></node2><node3><sub /></node3><node4><sub /></node4></nodes>';
$reader = new XMLReader();
-$reader->read();
-$reader->next();
+
+try {
+ $reader->read();
+} catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+}
+
+try {
+ $reader->next();
+} catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+}
+
$reader->close();
$reader->XML($xml);
$reader->close();
?>
---EXPECTF--
-Warning: XMLReader::read(): Load Data before trying to read in %s on line %d
-
-Warning: XMLReader::next(): Load Data before trying to read in %s on line %d
+--EXPECT--
+Data must be loaded before reading
+Data must be loaded before reading
node1
bool(true)
node3
$invalidProperty = -1;
$reader = new XMLReader();
$reader->XML($xml);
-var_dump($reader->setParserProperty(-1, true));
+try {
+ $reader->setParserProperty(-1, true);
+} catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+}
$reader->close();
?>
---EXPECTF--
-Warning: XMLReader::setParserProperty(): Invalid parser property in %s on line %d
-bool(false)
+--EXPECT--
+XMLReader::setParserProperty(): Argument #1 ($property) must be a valid parser property
<?php
$reader = new XMLReader();
-var_dump($reader->setSchema(''));
+try {
+ $reader->setSchema('');
+} catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+}
$reader->close();
$reader = new XMLReader();
-var_dump($reader->setSchema('schema-missing-file.xsd'));
+try {
+ $reader->setSchema('schema-missing-file.xsd');
+} catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+}
$reader->close();
$reader = new XMLReader();
-var_dump($reader->setSchema('schema-empty.xsd'));
+try {
+ $reader->setSchema('schema-empty.xsd');
+} catch (Error $exception) {
+ echo $exception->getMessage() . "\n";
+}
+
+$reader = new XMLReader();
+$reader->XML(<<<EOF
+<?xml version="1.0" encoding="UTF-8" ?>
+<foo/>
+EOF);
+var_dump(@$reader->setSchema('schema-bad.xsd'));
$reader->close();
?>
---EXPECTF--
-
-Warning: XMLReader::setSchema(): Schema data source is required in %s on line %d
-bool(false)
-
-Warning: XMLReader::setSchema(): Unable to set schema. This must be set prior to reading or schema contains errors. in %s on line %d
-bool(false)
-
-Warning: XMLReader::setSchema(): Unable to set schema. This must be set prior to reading or schema contains errors. in %s on line %d
+--EXPECT--
+XMLReader::setSchema(): Argument #1 ($filename) cannot be empty
+Schema must be set prior to reading
+Schema must be set prior to reading
bool(false)