| 
<?php
/**
 * Page DocBlock definition
 * @package org.zadara.marius.pax
 */
 
 /**
 * General file class definition.
 *
 * @author Marius Zadara <[email protected]>
 * @category Classes
 * @copyright (C) 2008-2009 Marius Zadara
 * @license Free for non-comercial use
 * @package org.zadara.marius.pax
 * @see Resource
 * @see IFile
 * @version 6.0
 * @since 5.0
 */
 class File extends Resource implements IFile
 {
 /**
 * Class constructor.
 *
 * @access public
 */
 public function __construct()
 {
 // call the parent contructor
 parent::__construct();
 }
 
 /**
 * Method to check if the file is ordinary.
 * Throws exception if error encountered.
 *
 * @access public
 * @final
 * @return boolean
 *
 * @see Resource#exists()
 */
 public final function isOrdinary()
 {
 try
 {
 // to check if the file is ordinary,
 // it must already exists
 $this->exists();
 
 // since the result is cached,
 // clear before checking it
 clearstatcache();
 
 return @is_file($this->path);
 }
 catch (PAXException $pe)
 {
 // in case of pax exception,
 // throw it further
 throw $pe;
 }
 catch (Exception $e)
 {
 // in case of general exception,
 // throw it further
 throw $e;
 }
 }
 
 /**
 * Method to get the content of the file.
 * Throws exception in case of error.
 *
 * @access public
 * @final
 * @return string
 */
 public final function getContent()
 {
 try
 {
 // check to see if the file is ordinary
 if (!$this->isOrdinary())
 throw new PAXException(Messages::$MSG_001, 1);
 
 // .. and is readable
 if (!$this->isReadable())
 throw new PAXException(Messages::$MSG_005, 5);
 
 // try to get the file content
 $content = @file_get_contents($this->path);
 
 // if failed getting the file content,
 // throw exception
 if ($content === false)
 throw new PAXException(Messages::$MSG_006, 6);
 
 return $content;
 }
 catch (PAXException $pe)
 {
 // in case of exception,
 // throw it further
 throw $pe;
 }
 catch (Exception $e)
 {
 // in case of exception,
 // throw it further
 throw $e;
 }
 }
 
 /**
 * Class destructor.
 *
 * @access private
 */
 function __destruct()
 {
 }
 }
 
 ?>
 |