<?php
+/**
+ * @todo document (needs one-sentence top-level class description).
+ */
class FileStore {
const DELETE_ORIGINAL = 1;
* suffer an uncaught error the lock will be released when the
* connection is closed.
*
- * @fixme Probably only works on MySQL. Abstract to the Database class?
+ * @todo Probably only works on MySQL. Abstract to the Database class?
*/
static function lock() {
global $wgDBtype;
private function copyFile( $sourcePath, $destPath, $flags=0 ) {
if( !file_exists( $sourcePath ) ) {
// Abort! Abort!
- throw new FSException( "missing source file '$sourcePath'\n" );
+ throw new FSException( "missing source file '$sourcePath'" );
}
$transaction = new FSTransaction();
if( !$ok ) {
throw new FSException(
- "failed to create directory for '$destPath'\n" );
+ "failed to create directory for '$destPath'" );
}
}
$transaction->addRollback( FSTransaction::DELETE_FILE, $destPath );
} else {
throw new FSException(
- __METHOD__." failed to copy '$sourcePath' to '$destPath'\n" );
+ __METHOD__." failed to copy '$sourcePath' to '$destPath'" );
}
}
function delete( $key ) {
$destPath = $this->filePath( $key );
if( false === $destPath ) {
- throw new FSExcepton( "file store does not contain file '$key'" );
+ throw new FSException( "file store does not contain file '$key'" );
} else {
return FileStore::deleteFile( $destPath );
}
* @throws FSException if file can't be deleted
* @return FSTransaction
*
- * @fixme Might be worth preliminary permissions check
+ * @todo Might be worth preliminary permissions check
*/
static function deleteFile( $path ) {
if( file_exists( $path ) ) {
* Confirm that the given file key is valid.
* Note that a valid key may refer to a file that does not exist.
*
- * Key should consist of a 32-digit base-36 SHA-1 hash and
+ * Key should consist of a 31-digit base-36 SHA-1 hash and
* an optional alphanumeric extension, all lowercase.
* The whole must not exceed 64 characters.
*
* @return boolean
*/
static function validKey( $key ) {
- return preg_match( '/^[0-9a-z]{32}(\.[0-9a-z]{1,31})?$/', $key );
+ return preg_match( '/^[0-9a-z]{31,32}(\.[0-9a-z]{1,31})?$/', $key );
}
return false;
}
- $base36 = wfBaseConvert( $hash, 16, 36, 32 );
+ $base36 = wfBaseConvert( $hash, 16, 36, 31 );
if( $extension == '' ) {
$key = $base36;
} else {
}
}
+/**
+ * @addtogroup Exception
+ */
class FSException extends MWException { }
-?>
+