<?
/**
* This is the SAFOX API Project Wrapper. The SAFOX package is a collection of light-weight API for object-oriented PHP to handle XML files.
* As of version 0.5 the SAFOX wrapper is the starting point for all SAFOX operations. It is an extreme light weight class
* that allows to create any of the SAFOX objects (XMLDoc, XMLParser, RSSDoc, RSSParser) without further include or require commands.
* All necessary libraries of the SAFOX API will be loaded only when/if the file is required, thus making scripts lighter and faster.
*
* Providing three base classes, XMLDoc, XMLNode, XMLParser, and extended RSSDoc and RSSParser Classes for RSS 2.0 Handling,
* the SAFOX package allows an easy and clean way to handle all kind of XML files. The SAFOX package is currently developed in PHP4.X
* and copyright by Christian Hansel, cpi service, Leipzig. The code is provided under the GNU Public License Version 2 and may freely be used,
* modified, and distributed with original copyright notices to be maintained.
*
* If no copy of the license is provided check {@link http://www.gnu.org/licenses/gpl2.txt}
*
* The SAFOX Package consists of five files:
* <ul>
* <li>safox.cls.php -- A OOP wrapper for all SAFOX objects which loads one or more of the following files only when required</li>
* </ul>
* <ul>
* <li>safox_g.cls.php -- Provides the XMLDOc & XMLNODE Classes</li>
* <li>safox_p.cls.php -- Provides a simple, light-weight, but strong Parser for XML Documents that returns a XMLDOC Object</li>
* </ul>
* The SAFOX_RSS sub package consists of two files but requires the SAFOX Base classes:
* <ul>
* <li>safox_g_rss.cls.php -- Provides the RSSDOc & RSSNODE Classes</li>
* <li>safox_p_rss.cls.php -- Provides a simple, light-weight, but strong Parser for XML Documents that returns a XMLDOC Object</li>
* </ul>
*
* This is the wrapper/main SAFOX library providing access to all SAFOX objects
*
* Changes History :
* version 0.5
* + The SAFOX library has been reorganised and now requires only one wrapper file (safox.cls.php)
* + added subpackage SAFOX_RSS provides two classes RSSDoc and RSSParser for the generation and parsing of RSS 2.0
* + added Feature: setEntityConversion is a function that specifies whether or not special characters in CDATA
* should be converted into HT/XML-Entities (e.g. & into &, ' into ' ...)
* (true) or enclosed into CDATA tags (false)
*
* version 0.42
* + BUGFIX 20051130-2 fixes a problem where comments containing tags caused the the parser to break
*
* version 0.41 of SAFOX package includes changes
* + BUGFIX 20051130 Code Cleanup provided by Cristiano Degiorgis [cri@webprofessor.it]
*
* Changes History :
* version 0.4 of SAFOX package includes changes
* + BUGFIX 20051128 that fixes problems with removing nodes from the document
* + remove, and delete methods added as aliases to destroy in XMLNode class
* + method cleanUP added to XMLDoc class
* + method cleanUP added to XMLNode class - see destription
*
* Changes History :
* version 0.3 of SAFOX package includes changes
* + BUGFIX 20051123 corrects a problem that was caused when a repeated call to setId of child Nodes was made
* + addNodeAfter Method added to XMLDoc Class
* + addNodeAfter Method added to XMLNode Class
* + addNodeBefore Method added to XMLDoc Class
* + addNodeBefore Method added to XMLNode Class
*
* version 0.2 of SAFOX package includes changes
* + getchildNodeByTagName() Method added to XMLDOC
* + writeToFile Method added to XMLDOC
* + BUGFIX 20051117 in xmlParser - corrects a mishandling of <![CDATA[ .. ]]> enclosed tag content that
* caused the parser to break when dealing with tags within the CDATA
*
* @author CVH, cpi-service ; cvh@cpi-service.com
* @link http://www.cpi-service.com
* @license GPL2 GNU General Public License (GPL) version 2
* @package SAFOX
* @version 0.5
* @date 2006-02-07
* @copyright (c) 2003-2006 CVH, cpi-service
* @file safox.cls.php
*/
define('SAFOXVERSION',0.5);
/**
* SAFOX a wrapper class for the SAFOX API
* The SAFOX Wrapper allows to create all SAFOX objects but only binds/loads source file when considered necessary.
* A single require / include line of code (include "safox.cls.php";) gives access to all source files and classes
* @package SAFOX
* @version 0.5
* @author CVH
*/
class SAFOX {
/**
* SAFOX constructor
*/
function SAFOX() {
// This is just a wrapper -- nothing to do here
}
/**
* creates a XMLDoc Generation object and returns a reference to this.
* automatically loads necessary files
* @return XMLDoc
*/
function &createXMLDoc() {
if (! defined("SAFOX_G")) {
require_once(dirname(__FILE__)."/safox_g.cls.php");
}
if (! defined("SAFOX_G")) {
die (" SAFOX Generation Class not found in directory:".dirname(__FILE__));
}
$xmlDoc = & new xmlDoc();
return $xmlDoc;
}
/**
* creates a XMLParser object and returns a reference to this.
* automatically loads necessary files
* @return @XMLParser
*/
function &createXMLParser() {
if (! defined("SAFOX_P")) {
require_once(dirname(__FILE__)."/safox_p.cls.php");
}
if (! defined("SAFOX_P")) {
die (" SAFOX Parser Class not found in directory:".dirname(__FILE__));
}
$parser = & new xmlParser();
return $parser;
}
/**
* creates a RSSDoc (RSS 2.0) Generation object and returns a reference to this.
* automatically loads necessary files
* @return RSSDoc
*/
function &createRSSDoc($title="",$link="",$description="") {
if (! defined("SAFOX_G_RSS")) {
require_once(dirname(__FILE__)."/safox_g_rss.cls.php");
}
if (! defined("SAFOX_G_RSS")) {
die (" SAFOX RSS Generation Class not found in directory:".dirname(__FILE__));
}
$rssDoc = & new RSSDoc($title,$link,$description);
return $rssDoc;
}
/**
* creates a RSSParser (RSS 2.0) object and returns a reference to this.
* automatically loads necessary files
* @return RSSParser
*/
function &createRSSParser() {
if (! defined("SAFOX_P_RSS")) {
require_once(dirname(__FILE__)."/safox_p_rss.cls.php");
}
if (! defined("SAFOX_P_RSS")) {
die (" SAFOX RSS Parser Class not found in directory:".dirname(__FILE__));
}
$rssp = & new RSSParser();
return $rssp;
}
/**
* returns the current version of the SAFOX API
* @return float
*/
function getVersion() {
return SAFOXVERSION;
}
/**
* alias to getVersion() - returns the current version of the SAFOX API
* @return float
*/
function ver() {
return SAFOXVERSION;
}
}
?>
|