Какие-либо пункты, чтобы использовать еще в блокировке файла?

Мы видели несколько примеров сценариев с написанием php-файлов, где они блокируют файл с помощью оператора if. Я не нашел никаких примеров того, что я должен написать в другом. Я использую это для создания простых файлов журнала TXT и не хочу печатать что-либо для пользователя, если это не удается. Могу ли я пропустить if / else или что я должен иметь в else?

$fh = fopen($logFile, 'w');
if (flock($fh, LOCK_EX)) {
foreach($datecounts as $datecount)
{
fwrite($fh, $datecount.PHP_EOL);
}
flock($fh, LOCK_UN);
}
else
{
//couldn't lock.
}
fclose($fh);

0

Решение

конечно, вы можете пропустить это. Но вы также можете использовать его в целях отладки (например, регистрация в случае ошибок)

0

Другие решения

если вы не хотите ничего делать, просто закройте это.

 flock($fh, LOCK_UN);

так что при следующей попытке это не создаст для вас проблемы.

0

не хотите ничего печатать пользователю, если это не удается …

И что делать Вы хотите сделать, если это не удается?

Или, другими словами, каковы последствия неудачи?

Похоже, вы пишете файл журнала, и если он не может заблокировать файл, вы просто хотите молча потерпеть неудачу. Это означает, что вы не получите ни логов, ни указаний на то, что они не ведутся.

Если регистрация важна для вас, то это не очень хорошо. Но если вы довольны этой ситуацией, тогда вы правы; нет необходимости в else пункт.

Но вы должны также рассмотреть, что означает сбой в блокировке файла. Это может означать, что у вас есть проблема с правами доступа к файлу или что кто-то еще открыл ее, или, возможно, диск переполнен или даже ошибка диска. Вы можете не заботиться о том, что файл журнала не записывается, но любая из этих проблем может привести к ухудшению ситуации в вашей программе позже, и раннее сообщение об этом может уберечь вас от этого.

0
По вопросам рекламы [email protected]