Source for file Resource.php
Documentation is available at Resource.php
// vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 fdm=marker encoding=utf8 :
* Pxxo - build self-supported and interoperable Web graphical components
* Copyright (c) 2008, Nicolas Thouvenin
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the author nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @copyright Copyright (c) 2008 Nicolas Thouvenin
* @license http://opensource.org/licenses/bsd-license.php
* @version $Id: Resource.php,v 1.5 2008/03/05 15:17:49 thouveni Exp $
require_once 'Pxxo/Buffer.php';
* Classe permet de gérer l'accès à des flux de données comme des ressources WEB
* Un flux de type ressource renvoit une url vers un fichier contenant le flux.
* @copyright Copyright (c) 2008 Nicolas Thouvenin
* @license http://opensource.org/licenses/bsd-license.php
* @var string type du contenu du flux
* @var string url d'accès à la ressource
* @var string chemin physique correspondant à l'url
* @var array chemin physique et chemin logique de la resource
* @var string file or inline : sous fomre de fichier ou de lignes de code inserées
* @param string localisation du flux
* On récupere le contenu de la ressource
* @return mixed Description
* On stocke le contenu du flux dans un fichier accessible via $this->url
* @return string l'url d'accès au contenu du flux
// Calcul du nom et de l'emplacement du fichier
if (empty($id)) return null;
$filename =
$id.
'.'.
$this->type;
$filepath =
$this->path.
DIRECTORY_SEPARATOR;
$file =
$filepath.
$filename;
$url =
$this->url.
'/'.
str_replace(DIRECTORY_SEPARATOR, '/', $filename);
$this->traceDebug("Buffer/RESOURCE\t[executed]\tlocalization(URI:".
$this->uri.
",\tRSC:".
$url.
')');
// Création du Répertoire
trigger_error('Buffer_Resource failed : unable to create '.
$filepath, E_USER_ERROR);
if (!$handle =
fopen($file, 'w'))
trigger_error('Buffer_Resource failed : unable to create '.
$file, E_USER_ERROR);
if (fwrite($handle, parent::get()) ===
FALSE)
trigger_error('Buffer_Resource failed : unable to write in'.
$file, E_USER_ERROR);
if (chmod($file,0777) ===
FALSE)
trigger_error('Buffer_Resource failed : unable to change permission for '.
$file, E_USER_ERROR);
else $this->traceDebug("Buffer/RESOURCE\t[cached]\tlocalization(URI:".
$this->uri.
",\tRSC:".
$url.
')');
$this->file =
array($file, $url);
* Merge un buffer avec le buffer courant
* @param boolean ajout ou non un commentaire
public function merge($o, $c =
true)
' SCHEME('.
$o->scheme.
')'.
' WEIGHT('.
$o->weight.
')'.
' TYPE('.
$o->getExtendedType().
')');
* Filtre permettant de minimiser une flux
* @param string chaine de caractère
* @return string chaine de caractère compressées
* Fixe comme on utilisera le code Javascript
if ($s ==
'inline') $this->weight -=
50;
* Retourne le mode d'utilisation du code Javascript
* Retrourne une chaine en HTML permettant de charger la ressource
* @return string chaine de caractère en HTML
* Renvoi le type étendu du Buffer
* fabrique un commentaire à partir de la chaine donnée en paramètre
Documentation generated on Thu, 13 Mar 2008 22:03:20 +0100 by phpDocumentor 1.4.1