85 lines
2.7 KiB
PHP
85 lines
2.7 KiB
PHP
<?php
|
||
use Carbon\Carbon;
|
||
|
||
|
||
function logProcessInfo($message, $data = [], $type = 'info') {
|
||
$logData = [
|
||
'timestamp' => now()->format('Y-m-d H:i:s'),
|
||
'message' => $message,
|
||
'memory_usage' => round(memory_get_usage() / 1024 / 1024, 2) . ' MB',
|
||
'data' => $data
|
||
];
|
||
|
||
switch ($type) {
|
||
case 'error':
|
||
Log::error($message, $logData);
|
||
break;
|
||
case 'warning':
|
||
Log::warning($message, $logData);
|
||
break;
|
||
case 'info':
|
||
Log::info($message, $logData);
|
||
break;
|
||
default:
|
||
Log::debug($message, $logData);
|
||
}
|
||
}
|
||
/**
|
||
* Sütun adında "date" geçen alanları Carbon ile formatlayan fonksiyon
|
||
* @param array|object $data Formatlanacak veri
|
||
* @param string $format Tarih formatı (default: d.m.Y)
|
||
* @return array|object Formatlanmış veri
|
||
*/
|
||
function formatDateColumns($data, $format = 'd.m.Y') {
|
||
// Veri tipini kontrol et
|
||
if (!is_array($data) && !is_object($data)) {
|
||
return $data;
|
||
}
|
||
|
||
// Array'e çevir
|
||
$dataArray = is_object($data) ? (array)$data : $data;
|
||
$modified = false;
|
||
|
||
foreach ($dataArray as $field => $value) {
|
||
// Eğer sütun adında "date" kelimesi varsa ve değer boş değilse
|
||
if (stripos($field, 'date') !== false && !empty($value) && $value !== null) {
|
||
// Zaten formatlanmış mı kontrol et (dd.mm.yyyy formatında)
|
||
if (preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $value)) {
|
||
continue; // Zaten doğru formatta
|
||
}
|
||
|
||
try {
|
||
// Carbon ile tarihi parse et
|
||
$carbonDate = Carbon::parse($value);
|
||
|
||
// Geçerli bir tarih mi kontrol et
|
||
if ($carbonDate->isValid()) {
|
||
$dataArray[$field] = $carbonDate->format($format);
|
||
$modified = true;
|
||
}
|
||
} catch (Exception $e) {
|
||
// Tarih parse edilemezse orijinal değeri koru
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
|
||
// Sadece değişiklik varsa yeni obje/array oluştur
|
||
if ($modified) {
|
||
return is_object($data) ? (object)$dataArray : $dataArray;
|
||
}
|
||
|
||
return $data;
|
||
}
|
||
|
||
function mb_str_replace($search, $replace, $subject) {
|
||
return implode($replace, explode($search, $subject, 2));
|
||
}
|
||
|
||
function replacePlaceholdersFileName($template, $data) {
|
||
return preg_replace_callback('/\{(\w+)\}/', function ($matches) use ($data) {
|
||
$key = $matches[1]; // Süslü parantez içindeki anahtar
|
||
return $data[$key] ?? $matches[0]; // Anahtar varsa değeri, yoksa orijinal metni döndür
|
||
}, $template);
|
||
}
|
||
?>
|