2010-11-12 6 views
6

Dans la classe principale de Kohana, il y a une constante FILE_SECURITY.Quel est le point de cette constante dans Kohana?

string(60) "<?php defined('SYSPATH') or die('No direct script access.');" 

Maintenant, évidemment, si vous placez ce au début de vos fichiers, et si elle est accessible en dehors de l'environnement Kohana, il die().

Mais quel est le but de cette constante? Nous ne pouvons pas eval() parce qu'il a un leader <?php. Est-ce que Kohana crée des fichiers PHP quelque part et les utilise pour les ajouter au début du fichier?

+0

+1 de quelqu'un qui n'utilise pas Kohana mais qui s'intéresse à son développement/conception –

+0

'eval' n'aura pas d'importance, la constante' SYSPATH' sera toujours trouvée indéfinie et le résultat en 'die' – Sarfraz

Répondre

7

Le Kohana_Log_File::write function utilise la constante:

// Set the name of the log file 
$filename = $directory.date('d').EXT; 

if (! file_exists($filename)) 
{ 
    // Create the log file 
    file_put_contents($filename, Kohana::FILE_SECURITY.' ?>'.PHP_EOL); 

    // Allow anyone to write to log files 
    chmod($filename, 0666); 
} 

On dirait qu'il est inséré dans un journal pour l'empêcher d'être lu à partir d'une URL publique.

+0

Googled la constante nom, est allé aux docs de l'API et lire la fonction 'write'. –

+0

Oui, j'ai juste essayé ça. Je ne sais pas pourquoi je n'ai pas pensé à ça - ou cherché sur GitHub. – alex

0

Vous pouvez également utiliser cette constante lors de l'auto-génération de vos fichiers personnalisés, comme les configs (possible dans les applications d'installation?).