2010-11-12 8 views
6

В основном классе Kohana существует постоянная FILE_SECURITY.В чем смысл этой константы в Кохане?

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

Теперь, очевидно, если вы поместите это в начале ваших файлов, и если он доступен за пределами среды Kohana, он будет die().

Но какова цель этой константы? Мы не можем eval(), потому что он имеет ведущий <?php.

Создает ли Kohana файлы PHP где-то и использует его для добавления его к началу файла?

+0

+1 от кого-то, кто не пользуется Kohana, но заинтересован в его разработке/дизайне –

+0

'eval' не имеет значения, константа' SYSPATH' будет по-прежнему найдена неопределенной и будет получена в 'die' – Sarfraz

ответ

7

Kohana_Log_File::write function использует константу:

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

Похоже, он вставляется в журнал, чтобы остановить его от чтения из публичного URL.

+0

Googled константа имя, перешел в документы API и прочитал функцию 'write'. –

+0

Да, я просто попробовал это. Не знаю, почему я не думал об этом на самом деле - или искал в GitHub. – alex

0

Также вы можете использовать эту константу при автогенерации ваших пользовательских файлов, например config (возможно, в установочных приложениях?).

Смежные вопросы