IO\SafeStream

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
stpnkcrk
Generous Backer | 190
+
0
-

Pokouším se rozjet práci se soubory za pomoci safe://, ale nedaří se mi to. Dokážete mi někdo poradit, v čem je chyba?

Pomocí file_get_contents načítám obsah souboru do proměnné a tu potom vypisuju přes Debug::dump(). Bez safe:// to vypíše obsah, se safe:// jen FALSE.

<?php
$promenna = file_get_contents('safe://home/www/.../soubor.txt'); // za ... si představte absolutní cestu k souboru
Debug::dump($promenna);
?>
kravčo
Člen | 721
+
0
-

Zrejme nemáš protokol safe zaregistrovaný, treba ho pred použitím zaregistrovať:

SafeStream::register();

Ono FALSE značí zlyhanie file_get_contents(), zrejme nenájdený súbor. jednoduchý príklad čo sa deje pri nezaregistrovaní:

<?php

// predpokladám UNIXový filesystém a na ňom dva súbory:
// ./file.txt
// ./safe:/file.txt
// (znak : nie je platný v názove súboru na Windowse)

require 'Nette/loader.php';

$content = file_get_contents('safe://file.txt');
Debug::dump($content); // vypíše obsah ./safe:/file.txt

echo "<hr />\n";

SafeStream::register();

$content = file_get_contents('safe://file.txt');
Debug::dump($content); // vypíše obsah ./file.txt

Zaujímavý feature PHP, bezpochyby :)

Edit: feature, ktorý ale vygeneruje notice… (predtým mi zmizol v neotvorenom okne Firebugu)

Editoval kravco (13. 1. 2009 23:55)

stpnkcrk
Generous Backer | 190
+
0
-

Ha, díky, funguje. Byly tam dvě chyby. Jednak nebyl registrovaný protokol a jednak chybělo třetí lomítko v cestě. Díky za pomoc! :-)

romansklenar
Člen | 655
+
0
-

Já bych se chtěl zeptat, jestli mi uniká nějaká souvislost proč jsou metody v Nette\IO\SafeStream pojmenovávány jako small_caps, když se v celém frameworku používá camelCaps ?

Jan Tvrdík
Nette guru | 2595
+
0
-

romansklenar napsal(a):

Já bych se chtěl zeptat, jestli mi uniká nějaká souvislost proč jsou metody v Nette\IO\SafeStream pojmenovávány jako small_caps, když se v celém frameworku používá camelCaps ?

Ano, uniká ti souvislost. Je to proto, aby fungovalo tohle: http://cz2.php.net/…per_register

romansklenar
Člen | 655
+
0
-

Díky ;)