Files
sermon-notes/src/Utils/Utils.php
Ryan Prather d06f24b1fa upd: utils
Add method to get file permissions
2026-02-16 14:16:37 -05:00

90 lines
2.6 KiB
PHP

<?php
namespace App\Utils;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
class Utils
{
public function sendEmail(MailerInterface $mailer, Address $from, Address $to, string $subject, string $content)
{
//$dsn = "smtp://{$_ENV['MAIL_USER']}:{$_ENV['MAIL_PWD']}@{$_ENV['MAIL_SERVER']}:{$_ENV['MAIL_PORT']}";
//dump($_ENV['MAILER_DSN']);
//$_ENV['MAILER_DSN'] = $dsn;
//dump($_ENV['MAILER_DSN']);
//die;
$mail = (new Email())
->from($from)
->to($to)
->subject($subject)
->replyTo($from)
->html($content);
try {
$mailer->send($mail);
} catch (TransportExceptionInterface $e) {
die($e->getMessage());
// some error prevented the email sending; display an
// error message or try to resend the message
}
}
public static function filePerms($file): string
{
$perms = fileperms($file);
switch ($perms & 0xF000) {
case 0xC000: // socket
$info = 's';
break;
case 0xA000: // symbolic link
$info = 'l';
break;
case 0x8000: // regular
$info = 'r';
break;
case 0x6000: // block special
$info = 'b';
break;
case 0x4000: // directory
$info = 'd';
break;
case 0x2000: // character special
$info = 'c';
break;
case 0x1000: // FIFO pipe
$info = 'p';
break;
default: // unknown
$info = 'u';
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
return $info;
}
}