/**
* Get the a bitfield of extra features supported by the backend medium
*
- * @return integer Bitfield of FileBackend::ATTR_* flags
+ * @return int Bitfield of FileBackend::ATTR_* flags
* @since 1.23
*/
public function getFeatures() {
/**
* Check if the backend medium supports a field of extra features
*
- * @return integer Bitfield of FileBackend::ATTR_* flags
+ * @return int Bitfield of FileBackend::ATTR_* flags
* @return bool
* @since 1.23
*/
* $params include:
* - src : source storage path
* - latest : use the latest available data
- * @return Array|bool Returns false on failure
+ * @return array|bool Returns false on failure
* @since 1.23
*/
abstract public function getFileXAttributes( array $params );
* @param array $params Parameters include:
* - dir : storage directory
* - topOnly : only return direct child dirs of the directory
- * @return Traversable|Array|null Returns null on failure
+ * @return Traversable|array|null Returns null on failure
* @since 1.20
*/
abstract public function getDirectoryList( array $params );
*
* @param array $params Parameters include:
* - dir : storage directory
- * @return Traversable|Array|null Returns null on failure
+ * @return Traversable|array|null Returns null on failure
* @since 1.20
*/
final public function getTopDirectoryList( array $params ) {
* - dir : storage directory
* - topOnly : only return direct child files of the directory (since 1.20)
* - adviseStat : set to true if stat requests will be made on the files (since 1.22)
- * @return Traversable|Array|null Returns null on failure
+ * @return Traversable|array|null Returns null on failure
*/
abstract public function getFileList( array $params );
* @param array $params Parameters include:
* - dir : storage directory
* - adviseStat : set to true if stat requests will be made on the files (since 1.22)
- * @return Traversable|Array|null Returns null on failure
+ * @return Traversable|array|null Returns null on failure
* @since 1.20
*/
final public function getTopFileList( array $params ) {
*
* @param array $paths Storage paths
*/
- public function preloadCache( array $paths ) {
- }
+ abstract public function preloadCache( array $paths );
/**
* Invalidate any in-process file stat and property cache.
*
* @param array $paths Storage paths (optional)
*/
- public function clearCache( array $paths = null ) {
- }
+ abstract public function clearCache( array $paths = null );
/**
* Preload file stat information (concurrently if possible) into in-process cache.
* @param array $params Parameters include:
* - srcs : list of source storage paths
* - latest : use the latest available data
+ * @return bool All requests proceeded without I/O errors (since 1.24)
* @since 1.23
*/
- public function preloadFileStat( array $params ) {
- }
+ abstract public function preloadFileStat( array $params );
/**
* Lock the files at the given storage paths in the backend.
* Get the final extension from a storage or FS path
*
* @param string $path
+ * @param string $case One of (rawcase, uppercase, lowercase) (since 1.24)
* @return string
*/
- final public static function extensionFromPath( $path ) {
+ final public static function extensionFromPath( $path, $case = 'lowercase' ) {
$i = strrpos( $path, '.' );
+ $ext = $i ? substr( $path, $i + 1 ) : '';
+
+ if ( $case === 'lowercase' ) {
+ $ext = strtolower( $ext );
+ } elseif ( $case === 'uppercase' ) {
+ $ext = strtoupper( $ext );
+ }
- return strtolower( $i ? substr( $path, $i + 1 ) : '' );
+ return $ext;
}
/**