X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Ffile_directories%2Foutput%2Ftext%2Fclass_FrameworkTextFileOutputPointer.php;h=425c57d96e2062e8e01558def4f2c27b1329f78d;hp=a235a8069aec35171aaa6f234dcecb755cd9f360;hb=b9bfbe86c031c9d83c3670602906df191a33ba2a;hpb=5da8f717122568335b8a8ab230fa0de17e983fab diff --git a/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php b/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php index a235a806..425c57d9 100644 --- a/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php +++ b/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php @@ -8,6 +8,9 @@ use CoreFramework\Filesystem\Pointer\OutputPointer; use CoreFramework\Generic\NullPointerException; use CoreFramework\Generic\UnsupportedOperationException; +// Import SPL stuff +use \SplFileInfo; + /** * A class for writing files * @@ -45,22 +48,22 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * Create a file pointer based on the given file. The file will also * be verified here. * - * @param $fileName The file name we shall pass to fopen() + * @param $fileInstance An instance of a SplFileInfo class * @param $mode The output mode ('w', 'a' are valid) * @throws FileIsEmptyException If the provided file name is empty. * @throws FileIoException If fopen() returns not a file resource * @return void */ - public static final function createFrameworkTextFileOutputPointer ($fileName, $mode) { + public static final function createFrameworkTextFileOutputPointer (SplFileInfo $fileInstance, $mode) { // Some pre-sanity checks... - if (is_null($fileName)) { + if (is_null($fileInstance)) { // No filename given throw new FileIsEmptyException(NULL, self::EXCEPTION_UNEXPECTED_EMPTY_STRING); } // END - if // Try to open a handler - $filePointer = @fopen($fileName, $mode); - if ((is_null($filePointer)) || ($filePointer === false)) { + $fileObject = $fileInstance->openFile($mode); + if ((is_null($fileObject)) || ($fileObject === false)) { // Something bad happend throw new FileIoException ($fileName, self::EXCEPTION_FILE_POINTER_INVALID); } // END - if @@ -68,9 +71,8 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer // Create new instance $pointerInstance = new FrameworkTextFileOutputPointer(); - // Set file pointer and file name - $pointerInstance->setPointer($filePointer); - $pointerInstance->setFileName($fileName); + // Set file object + $pointerInstance->setFileObject($fileObject); // Return the instance return $pointerInstance; @@ -81,22 +83,20 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * * @param $dataStream The data stream we shall write to the file * @return mixed Number of writes bytes or false on error - * @throws NullPointerException If the file pointer instance - * is not set by setPointer() - * @throws InvalidResourceException If there is being set - * an invalid file resource + * @throws NullPointerException If the file pointer instance is not set by setPointer() + * @throws LogicException If there is no object being set */ public function writeToFile ($dataStream) { - if (is_null($this->getPointer())) { + if (is_null($this->getFileObject())) { // Pointer not initialized throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); - } elseif (!is_resource($this->getPointer())) { - // Pointer is not a valid resource! - throw new InvalidResourceException($this, self::EXCEPTION_INVALID_RESOURCE); + } elseif (!is_object($this->getFileObject())) { + // Pointer is not a valid object! + throw new LogicException(sprintf('this->fileObject[]=%s is no object', gettype($this->getFileObject()))); } // Write data to the file pointer and return written bytes - return fwrite($this->getPointer(), $dataStream); + return $this->getFileObject()->fwrite($dataStream); } /**