Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Working on filesystem.
  • Loading branch information
taylorotwell committed Aug 24, 2014
1 parent eeda8b4 commit 9da2d96
Show file tree
Hide file tree
Showing 9 changed files with 739 additions and 0 deletions.
1 change: 1 addition & 0 deletions composer.json
Expand Up @@ -16,6 +16,7 @@
"ircmaxell/password-compat": "~1.0",
"filp/whoops": "1.1.*",
"jeremeamia/superclosure": "~1.0",
"league/flysystem": "~0.5",

This comment has been minimized.

Copy link
@philsturgeon

philsturgeon Aug 26, 2014

I'd watch out using ~0.x like this. SemVer dictates that 0.x changes can break, so going from 0.5 to 0.6 cannot be expected to work perfectly. If somebody has 0.6.0 installed it'll just random break stuff for them.

"monolog/monolog": "~1.6",
"nesbot/carbon": "~1.0",
"patchwork/utf8": "~1.1",
Expand Down
3 changes: 3 additions & 0 deletions src/Illuminate/Contracts/Filesystem/Cloud.php
@@ -0,0 +1,3 @@
<?php namespace Illuminate\Contracts\Filesystem;

interface Cloud extends Filesystem {}
13 changes: 13 additions & 0 deletions src/Illuminate/Contracts/Filesystem/Factory.php
@@ -0,0 +1,13 @@
<?php namespace Illuminate\Contracts\Filesystem;

interface Factory {

/**
* Get an OAuth provider implementation.

This comment has been minimized.

Copy link
@bencorlett

bencorlett Aug 27, 2014

Contributor

Lolza.

This comment has been minimized.

Copy link
@chasegenie

chasegenie Aug 27, 2014

👍 lol

This comment has been minimized.

Copy link
@taylorotwell

taylorotwell Aug 27, 2014

Author Member

:)

This comment has been minimized.

Copy link
@bencorlett

bencorlett Aug 27, 2014

Contributor

Not stalking code of course. Too busy writing presentation lol.

This comment has been minimized.

Copy link
@JoostK

JoostK Aug 27, 2014

Contributor

Presentations made just before they are to be presented are the best, right? 😉

This comment has been minimized.

Copy link
@bencorlett

bencorlett via email Aug 27, 2014

Contributor

This comment has been minimized.

Copy link
@bencorlett

bencorlett via email Aug 27, 2014

Contributor

This comment has been minimized.

Copy link
@JoostK

JoostK Aug 27, 2014

Contributor

Let's not do that tomorrow as it'll be the only day I'm around.

This comment has been minimized.

Copy link
@bencorlett

bencorlett via email Aug 27, 2014

Contributor
*
* @param string $name
* @return \Illuminate\Contracts\Filesystem\Filesystem
*/
public function disk($name = null);

}
3 changes: 3 additions & 0 deletions src/Illuminate/Contracts/Filesystem/FileNotFoundException.php
@@ -0,0 +1,3 @@
<?php namespace Illuminate\Contracts\Filesystem;

class FileNotFoundException extends \Exception {}
174 changes: 174 additions & 0 deletions src/Illuminate/Contracts/Filesystem/Filesystem.php
@@ -0,0 +1,174 @@
<?php namespace Illuminate\Contracts\Filesystem;

interface Filesystem {

/**
* The public visibility setting.
*
* @var string
*/
const VISIBILITY_PUBLIC = 'public';

/**
* The private visibility setting.
*
* @var string
*/
const VISIBILITY_PRIVATE = 'private';

/**
* Determine if a file exists.
*
* @param string $path
* @return bool
*/
public function exists($path);

/**
* Get the contents of a file.
*
* @param string $path
* @return string
*
* @throws FileNotFoundException
*/
public function get($path);

/**
* Write the contents of a file.
*
* @param string $path
* @param string $contents
* @param string $visibility
* @return bool
*/
public function put($path, $contents, $visibility = null);

/**
* Get the visibility for the given path.
*
* @param string $path
* @return string
*/
public function getVisibility($path);

/**
* Set the visibility for the given path.
*
* @param string $path
* @param string $visibility
* @return void
*/
public function setVisibility($path, $visibility);

/**
* Prepend to a file.
*
* @param string $path
* @param string $data
* @return int
*/
public function prepend($path, $data);

/**
* Append to a file.
*
* @param string $path
* @param string $data
* @return int
*/
public function append($path, $data);

/**
* Delete the file at a given path.
*
* @param string|array $paths
* @return bool
*/
public function delete($paths);

/**
* Copy a file to a new location.
*
* @param string $from
* @param string $to
* @return bool
*/
public function copy($from, $to);

/**
* Move a file to a new location.
*
* @param string $from
* @param string $to
* @return bool
*/
public function move($from, $to);

/**
* Get the file size of a given file.
*
* @param string $path
* @return int
*/
public function size($path);

/**
* Get the file's last modification time.
*
* @param string $path
* @return int
*/
public function lastModified($path);

/**
* Get an array of all files in a directory.
*
* @param string|null $directory
* @param bool $recursive
* @return array
*/
public function files($directory = null, $recursive = false);

/**
* Get all of the files from the given directory (recursive).
*
* @param string|null $directory
* @return array
*/
public function allFiles($directory = null);

/**
* Get all of the directories within a given directory.
*
* @param string|null $directory
* @param bool $recursive
* @return array
*/
public function directories($directory = null, $recursive = false);

/**
* Get all (recursive) of the directories within a given directory.
*
* @param string|null $directory
* @return array
*/
public function allDirectories($directory = null);

/**
* Create a directory.
*
* @param string $path
* @return bool
*/
public function makeDirectory($path);

/**
* Recursively delete a directory.
*
* @param string $directory
* @return bool
*/
public function deleteDirectory($directory);

}

0 comments on commit 9da2d96

Please sign in to comment.