示例#1
0
 /**
  * Gets the current Phing version based on VERSION.TXT file.
  *
  * @throws ConfigurationException
  *
  * @return string
  */
 public static function getPhingVersion()
 {
     $path = dirname(dirname(dirname(__FILE__)));
     $gitInformation = self::getGitInformation($path);
     if ($gitInformation) {
         return "Phing " . $gitInformation;
     }
     $versionPath = self::getResourcePath("phing/etc/VERSION.TXT");
     if ($versionPath === null) {
         $versionPath = self::getResourcePath("etc/VERSION.TXT");
     }
     if ($versionPath === null) {
         throw new ConfigurationException("No VERSION.TXT file found; try setting phing.home environment variable.");
     }
     try {
         // try to read file
         $file = new PhingFile($versionPath);
         $reader = new FileReader($file);
         $phingVersion = trim($reader->read());
     } catch (IOException $iox) {
         throw new ConfigurationException("Can't read version information file");
     }
     return "Phing " . $phingVersion;
 }
示例#2
0
 function loadFromStream($filename)
 {
     $buffers = new StringBuffer();
     $file = NULL;
     if (File::validClass($filename)) {
         $file = $filename;
     } else {
         $file = new File($filename);
     }
     $filereader = new FileReader($file);
     while ($c = $filereader->read()) {
         $buffers->append($c);
     }
     $this->str = $buffers->toString();
 }
示例#3
0
    }
}
class INIFileReader
{
    public function read($filePath)
    {
        return fopen($filePath, 'r');
    }
}
class FileReader
{
    public function read($filePath)
    {
        $extension = substr($filePath, -3);
        switch ($extension) {
            case 'ini':
                $reader = new INIFileReader();
                break;
            case 'xml':
                $reader = new XMLFileReader();
                break;
            default:
                return false;
                break;
        }
        return $reader->read($filePath);
    }
}
$reader = new FileReader();
$reader->read("test.ini");
$reader = new INIFileReader();
示例#4
0
 /**
  * Reading a file.
  * 
  * @param  PhingFile $file The file to read
  * @return string
  * @access protected
  **/
 protected function _readFile(PhingFile $file)
 {
     $input = new FileReader($file);
     $buffer = $input->read();
     $input->close();
     return $buffer;
 }
示例#5
0
   <td bgcolor=#ffffff>
   <br>
   <br>
   <?php 
if ($source) {
    highlight_string(implode('', file(__FILE__)));
    exit;
}
?>
   <strong>Loading properties file from :</strong> ./config.conf
   <br>
   <br>
   Display <strong>config.conf</strong> content :
   <dl><dd>
   <?php 
$reader = new FileReader('config.conf');
if ($reader->ready()) {
    while (($line = $reader->read()) != '') {
        if ($line == "\n" || $line == "\r\n") {
            print "<br>\n";
        } else {
            print htmlentities($line);
        }
    }
}
?>
   </dl>
   </td>
</tr>
</table>
示例#6
0
 /**
  * @param IFile $file The source file to copy from.
  * @return bool TRUE if the file has been successfully copied from $file, FALSE if an error occured
  * Note: An exception is raised if an important error is detected (the copy of a single file failed),
  *       but during a folder copy, a failure during the copy of a single "sub-file" is ignored and no
  *       exception is raised.
  *       Nevertheless, you can check if the copy was a full success by testing the returned value.
  * @throws EyeIOException
  * @throws EyeFileNotFoundException
  */
 protected function copyFrom(IFile $file, $overwrite = true)
 {
     if ($this->isDirectory() && (!$file->isDirectory() || $this->getName() != $file->getName())) {
         if ($this->getName() != '/' || $file->getName() != '/') {
             return $this->getChildFile($file->getName())->copyFrom($file, $overwrite);
         }
     }
     if ($this->exists() && !$overwrite) {
         throw new EyeIOException($this->path . '" exists and can\'t be overwritten.');
     }
     //FILE or LINK
     if ($file->isFile() || $file->isLink()) {
         $srcPath = AdvancedPathLib::getPhpLocalHackPath($file->getPath());
         $destPath = AdvancedPathLib::getPhpLocalHackPath($this->path);
         // First, let's try with the function provided by PHP, but only working with
         // a very restricted range of filesystems
         if (copy($srcPath, $destPath)) {
             return true;
         }
         if (!$this->exists() && !$this->createNewFile(true)) {
             throw new EyeIOException('Unable to create destination file ' . $this->path . '.');
         }
         try {
             $fileWriter = new FileWriter($this->getOutputStream());
             $fileReader = new FileReader($file->getInputStream());
             $buffer = null;
             while ($fileReader->read($buffer) !== 0) {
                 $fileWriter->write($buffer);
             }
             $fileReader->close();
             $fileWriter->close();
             return true;
         } catch (Exception $e) {
             if (is_object($fileReader)) {
                 $fileReader->close();
             }
             if (is_object($fileWriter)) {
                 $fileWriter->close();
             }
             throw new EyeIOException('Unable to transfer files contents ' . $file->getPath() . ' => ' . $this->path . '.', 0, $e);
         }
     } elseif ($file->isDirectory()) {
         if ($this->isDirectory() || $this->mkdirs()) {
             $success = true;
             foreach ($file->listFiles() as $subFile) {
                 try {
                     if (!$subFile->copyTo($this)) {
                         $success = false;
                     }
                 } catch (Exception $e) {
                     $success = false;
                 }
             }
             return $success;
         } else {
             throw new EyeIOException('Unable to create destination directory ' . $this->path . '.');
         }
     } else {
         throw new EyeFileNotFoundException($file->getPath() . ' does not exist.');
     }
 }
示例#7
-2
 /**
  * @TODO
  */
 public function fromRoute($route)
 {
     // $this->route = $route;
     // Find the files that match the route.
     $finder = new \Symfony\Component\Finder\Finder();
     $glob = '#^default\\.(?:md|markdown|textile|html|htm|txt)$#';
     if ($route !== '') {
         $glob = '#^(?:\\d\\d\\.)?' . implode('\\/(?:\\d\\d\\.)?', explode('/', $route)) . '(?:\\/default)?\\.(?:md|markdown|textile|html|htm|txt)' . '$#';
     }
     $finder->in($this->documentPath)->path($glob);
     $files = [];
     foreach ($finder as $file) {
         $files[] = $file->getRelativePathname();
     }
     // Work out if we have *any* matching documents.  If not, throw an
     // exception.
     if (empty($files)) {
         throw new Exceptions\NoCandidatesException($route);
     }
     // Sort functions.
     $indexSort = function ($a, $b) {
         // return 0;
         return $a > $b;
     };
     $extensionSort = function ($a, $b) {
         $allowedExtensions = explode('|', 'md|markdown|textile|html|htm|txt');
         $aExt = pathinfo($a, PATHINFO_EXTENSION);
         $bExt = pathinfo($b, PATHINFO_EXTENSION);
         $aExtPos = array_search($aExt, $allowedExtensions);
         $bExtPos = array_search($bExt, $allowedExtensions);
         return $aExtPos > $bExtPos;
     };
     $isDefaultSort = function ($a, $b) {
         $aHasDefault = strpos($a, 'default.');
         $bHasDefault = strpos($b, 'default.');
         return $aHasDefault < $bHasDefault;
     };
     // Sort the documents according to their priority.
     $complexSort = \pjdietz\ComplexSort\ComplexSort::makeComplexSortFunction([$indexSort, $extensionSort, $isDefaultSort]);
     usort($files, $complexSort);
     // Read the file content from the filesystem.
     $fileReader = new FileReader(new \League\Flysystem\Filesystem(new \League\Flysystem\Adapter\Local($this->documentPath)));
     $filepath = $files[0];
     $content = $fileReader->read($filepath);
     // Create a document from the file content.
     $document = new Document($content);
     $document->filepath = $filepath;
     $document->parse();
     return $document;
 }
示例#8
-7
 public function testWriteInNotExistingFile()
 {
     $filePath = __DIR__ . '/resources/none.txt';
     $dummyFileReader = new FileReader($filePath);
     $this->assertSame('', $dummyFileReader->read());
     $this->assertSame(3, $dummyFileReader->write('abc'));
     $this->assertSame('abc', $dummyFileReader->read());
     $this->assertSame(3, $dummyFileReader->write('def'));
     $this->assertSame('def', $dummyFileReader->read());
     unlink($filePath);
 }