* @param $filename String: File name to open
* @param $lineCallback Callback: Optional function called before reading each line
* @param $resultCallback Callback: Optional function called for each MySQL result
+ * @param $fname String: Calling function name or false if name should be generated dynamically
+ * using $filename
*/
- function sourceFile( $filename, $lineCallback = false, $resultCallback = false ) {
+ function sourceFile( $filename, $lineCallback = false, $resultCallback = false, $fname = false ) {
$fp = fopen( $filename, 'r' );
if ( false === $fp ) {
return "Could not open \"{$filename}\".\n";
}
+ if ( !$fname ) {
+ $fname = __METHOD__ . "( $filename )";
+ }
+
try {
- $error = $this->sourceStream( $fp, $lineCallback, $resultCallback );
+ $error = $this->sourceStream( $fp, $lineCallback, $resultCallback, $fname );
}
catch ( MWException $e ) {
if ( defined( "MEDIAWIKI_INSTALL" ) ) {
* @param $fp String: File handle
* @param $lineCallback Callback: Optional function called before reading each line
* @param $resultCallback Callback: Optional function called for each MySQL result
+ * @param $fname String: Calling function name
*/
- function sourceStream( $fp, $lineCallback = false, $resultCallback = false ) {
+ function sourceStream( $fp, $lineCallback = false, $resultCallback = false, $fname = 'DatabaseBase::sourceStream' ) {
$cmd = "";
$done = false;
$dollarquote = false;
if ( $done ) {
$cmd = str_replace( ';;', ";", $cmd );
$cmd = $this->replaceVars( $cmd );
- $res = $this->query( $cmd, __METHOD__ );
+ $res = $this->query( $cmd, $fname );
if ( $resultCallback ) {
call_user_func( $resultCallback, $res, $this );