Я получил эту работу с помощью этого кода:
// Delete the file from WordPress server after processing.
$filename_only = wp_basename( get_attached_file( $post_thumbnail_id ) );
$upload_dir = wp_upload_dir();
$dir = $upload_dir['basedir'] .'/'. date('Y') . '/' . date ('m');
$file = $dir . '/' . $filename_only;
if ( ! empty ($file)){
chdir($dir);
unlink($filename_only);
}
Сначала я выбрал имя файла и каталог загрузки. Затем я проверил, существует ли файл в каталоге, и если да, то рабочий каталог изменился на локальный каталог загрузки, и удалил файл.
Идея DDD состоит в том, что модель предметной области содержит Ваши данные и большую часть бизнес-логики. Сервисы обычно имеют дело с персистентностью этих структур.
Затем существуют все те промежуточные случаи, где бизнес-процесс состоит из нескольких шагов, которые неизменно изменяются/изменяют объекты области. Вы обычно используете сервисы для понимания некоторого процесса. Таким образом, обычно Вы обновляете объекты области с результатами сервисов. Вы никогда не позволяете обслуживаниям вызовов реализаций объекта области собой!
Так его довольно общее для наблюдения кода как это:
if (order.isValidForPurchase() && orderValidatorService.isValidOrder( order))
orderService.order( order)
Просто, потому что части истины известны объекту порядка, и некоторые требуют внешних данных, известных orderValidatorService
. Возможно эти две строки кода могли также быть в orderService.order
метод.
Я думаю, что всегда стоит заняться расследованиями, Сколько объектов области существует в этих процессах; иногда много может быть получено, заставив больше понятий, чем Вы первоначально думать. Это - действительно пересечение состояний бизнес-процесса и объектных моделей. Модели Often DDD имеют тенденцию пытаться получить домен от чрезмерно структурного представления, IMO, игнорирующий ядро, обрабатывает немного слишком много. Таким образом, если Вы чрезмерно структурны, я думаю, что Вы делаете Order
объект. Если Вы добавляете процесс, возможно, Вы делаете ShoppingCartOrder
, UnshippedOrder
, ShippedOrder
, BilledOrder
и HistoricalOrder
. Это также делает Вашу интеграцию сервисов более простой иногда.