В примере, который вы публикуете, все три процесса являются частью единой единицы работы. Но ваш вопрос противоречит этому факту.
В следующих примерах я пропускаю создание и распоряжение экземпляром db
. Рекомендуется заключить его в блок using
, если применимо.
Исходя из вашего вопроса, вы хотите разделить ваш UoW на три (по одному для каждого процесса) раздела. Итак, что-то похожее на приведенное ниже является первым выбором:
try
{
//Start new UoW here
db = new .....
// Process 1: inserts record using repository for EntityModel1
db.Commit();
}
catch (Exception ex)
{
//Log or whatever
}
try
{
//Start new UoW here
db = new .....
// Process 2: updatesrecord using repository for EntityModel2
db.Commit();
}
catch (Exception ex)
{
//Log or whatever
}
try
{
//Start new UoW here
db = new .....
// Process 3: inserts record using repository for EntityModel3
db.Commit();
}
catch (Exception ex)
{
//Log or whatever
}
Другой альтернативой является Commit
после завершения каждого процесса. Но это зависит от того, как спроектирован ваш UoW и как закодирован ваш метод Commit
:
try
{
// Process 1: inserts record using repository for EntityModel1
db.Commit();
// Process 2: updatesrecord using repository for EntityModel2
db.Commit();
// Process 3: inserts record using repository for EntityModel3
db.Commit();
}
catch (Exception ex)
{
//Log or whatever
}
Должно работать правильно. Из документации is_dir ()
:
Возвращает TRUE, если существует имя файла и является каталогом , ЛОЖЬ в противном случае.
Ну, во всяком случае, если он не попробует это:
if(file_exists($dir) && is_dir($dir))
Кстати. результаты этих функций кэшируются в кеше статистики. Используйте clearstatcache () для очистки этого кэша.
Возможно, вы захотите использовать opendir () после того, как is_dir () согласится, что путь (мог) быть каталогом.
Если ресурс, возвращаемый opendir (), действителен, вы знаете, что у вас есть каталог, и уже есть дескриптор для его чтения.
Просто обязательно вызовите closedir () в любом случае, если верный дескриптор будет возвращен.
Редактировать:
Этот ответ предполагает, что вы будете открывать каталог в любом случае. Если вам просто нужно убедиться, что путь в порядке / действителен, file_exists () намного дешевле.
Вы можете попробовать это:
if(is_dir($dir) && is_writeable($dir))
{
// ...
}