2010-11-12 14 views
6

Nella classe principale di Kohana, c'è una costante FILE_SECURITY.Qual è il punto di questa costante in Kohana?

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

Ora, ovviamente, se si collocare questo all'inizio del file, e se si accede al di fuori dell'ambiente Kohana, sarà die().

Ma qual è lo scopo di questa costante? Non possiamo eval() perché ha uno <?php leader.

Kohana crea file PHP da qualche parte e lo utilizza per aggiungerlo all'inizio del file?

+0

+1 da qualcuno che non usa Kohana ma è interessato al suo sviluppo/design –

+0

'eval' non importa, la costante' SYSPATH' sarà ancora trovata indefinita e risultante in 'die' – Sarfraz

risposta

7

Il Kohana_Log_File::write function utilizza la costante:

// 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); 
} 

sembra che sia inserito in un registro per impedire che la lettura da un URL pubblico.

+0

Googled the constant nome, è andato ai documenti API e ha letto la funzione 'write'. –

+0

Sì, l'ho appena provato. Non so perché in realtà non ci ho pensato - o cercato su GitHub. – alex

0

Inoltre è possibile utilizzare questa costante durante la creazione automatica dei file personalizzati, come le configurazioni (possibili nelle app di installazione?).