diff --git a/exporter/packages.json b/exporter/packages.json index 651d1b0..6e5fb4e 100755 --- a/exporter/packages.json +++ b/exporter/packages.json @@ -1,74 +1,80 @@ { - "available": { - "session": { - "1.0": [] - }, - "error": { - "1.0": [], - "2.0": [] - }, - "http": { - "1.0": [] - }, - "api": { - "1.0": { - "error": [ - "1.0" - ] - }, - "2.0": { - "error": [ - "2.0" - ] - }, - "2.2": { - "error": [ - "2.0" - ], - "http": [ - "1.0" - ] - } - }, - "orm": { - "0.8.1": { - "database": [ - "1.0" - ] - }, - "0.8.2": { - "database": [ - "2.0" - ] - } - }, - "database": { - "1.0": { - "error": [ - "1.0" - ] - }, - "2.0": { - "error": [ - "2.0" - ] - } - }, - "lightdb": { - "1.0": [] - }, - "router": { - "1.0": [], - "2.0": [] - } - }, - "installed": { - "api": "2.2", - "error": "2.0", - "http": "1.0", - "orm": "0.8.2", - "database": "2.0", - "router": "2.0", - "session": "1.0" - } -} \ No newline at end of file + "available": { + "session": { + "1.0": [] + }, + "filedriver": { + "1.0": [] + }, + "log": { + "1.0": [] + }, + "error": { + "1.0": [], + "2.0": [] + }, + "http": { + "1.0": [] + }, + "api": { + "1.0": { + "error": [ + "1.0" + ] + }, + "2.0": { + "error": [ + "2.0" + ] + }, + "2.2": { + "error": [ + "2.0" + ], + "http": [ + "1.0" + ] + } + }, + "orm": { + "0.8.1": { + "database": [ + "1.0" + ] + }, + "0.8.2": { + "database": [ + "2.0" + ] + } + }, + "database": { + "1.0": { + "error": [ + "1.0" + ] + }, + "2.0": { + "error": [ + "2.0" + ] + } + }, + "lightdb": { + "1.0": [] + }, + "router": { + "1.0": [], + "2.0": [] + } + }, + "installed": { + "api": "2.2", + "error": "2.0", + "http": "1.0", + "orm": "0.8.2", + "database": "2.0", + "router": "2.0", + "session": "1.0" + } +} diff --git a/src/packages/filedriver/1.0/core/FileDriver.php b/src/packages/filedriver/1.0/core/FileDriver.php new file mode 100644 index 0000000..f2b4462 --- /dev/null +++ b/src/packages/filedriver/1.0/core/FileDriver.php @@ -0,0 +1,159 @@ + Path of the needed file + * + * @return created If the file has been created successfully + * + */ + public static function create($file){ + /* (0) Checks arguments */ + if( !is_string($file) || is_dir($file) ) + return false; + + /* (1) Creates file */ + try{ + fclose( fopen($file, 'w') ); + return true; + }catch(\Exception $e){ return false; } + } + + + /* READS FILE'S CONTENT + * + * @file File to read + * + */ + public static function read($file){ + /* (0) Checks arguments */ + if( !is_string($file) ) + throw new \Exception('Wrong argument for read().'); + + /* (1) Initializing driver on file (read-flag) */ + $driver = new \SplFileObject($file, 'r'); + + /* (2) Read lines */ + $read = ''; + + $line = 0; + while( $driver->current() ){ + $read .= $driver->current(); + $driver->next(); + } + + /* (3) Returns result */ + return $read; + } + + /* READS A FILE'S SPECIFIC LINE + * + * @file File to read + * @line Line to read + * + */ + public static function readline($file, $line){ + /* (0) Checks arguments */ + if( !is_string($file) || intval($line) !== $line ) + throw new \Exception('Wrong argument for readline(, ).'); + + /* (1) Initializing driver on file (read-flag) */ + $driver = new \SplFileObject($file, 'r'); + + /* (2) Goto specific line */ + $driver->seek($line); + + /* (3) Return line's content */ + if( $driver->key() == $line ) + return $driver->current(); + else + return null; + } + + /* WRITES A FILE'S SPECIFIC LINE + * + * @file File to read + * @line Line to read + * + */ + public static function writeline($file, $line){ + /* (0) Checks arguments */ + if( !is_string($file) || intval($line) !== $line ) + throw new \Exception('Wrong argument for writeline(, ).'); + + /* (1) Initializing driver on file (read-flag) */ + $driver = new \SplFileObject($file, 'r'); + + /* (2) Goto specific line */ + $driver->seek($line); + + /* (3) Return line's content */ + if( $driver->key() == $line ) + return $driver->current(); + else + return null; + } + + + /* WRITES CONTENT TO A FILE + * + * @file File to write to + * @content Content to write + * + * @return written Returns if the content have been written successfully + * + * @note: Creates file if it is possible with `fopen()` + * + */ + public static function write($file, $content){ + /* (0) Checks arguments */ + if( !is_string($file) || !is_string($content) ) + return false; + + /* (1) Erase file */ + try{ + fclose( fopen($file, 'w') ); + }catch(\Exception $e){ return false; } + + /* (2) Get driver (write-flag) */ + $driver = new \SplFileObject($file, 'r+'); + + /* (3) Writes content */ + return !is_null( $driver->fwrite($content) ); + + } + + + /* APPENDS CONTENT TO A FILE + * + * @file File to append content to + * @content Content to append + * + * @return append Returns if the content have been append successfully + * + * @note: If file doesn't exists, returns false + * + */ + public static function append($file, $content){ + /* (0) Checks arguments */ + if( !is_file($file) || !is_string($content) ) + return false; + + /* (1) Get driver (append-flag) */ + $driver = new \SplFileObject($file, 'a'); + + /* (2) append content */ + return !is_null( $driver->fwrite($content.PHP_EOL) ); + } + + + } + +?> diff --git a/src/packages/log/1.0/core/Log.php b/src/packages/log/1.0/core/Log.php new file mode 100644 index 0000000..41d895e --- /dev/null +++ b/src/packages/log/1.0/core/Log.php @@ -0,0 +1,8 @@ +