Очистка PHP при проверке формы

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

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $flag = $_POST['FLAG'];
    $name = trim(stripcslashes($_POST['name']));
    $email = trim(stripcslashes($_POST['email']));
    $message = trim(stripcslashes($_POST['message']));
    $success = false;

    $mail = new Mail($flag, $name, $email, $message, $config);   

    $result = $mail->validateFields();

    if ($result) {
        $errors = $result;
    } elseif ($result == false) {
        $mail->sendEmail();
        $success = true;
    }    
}

Любая идея, как улучшить мой код?
Я использую swiftmailer и сторонний MTA (mailgun).
Класс MAIL имеет 2 метода: Validate и Send.
Метод validate используется для проверки полей и возвращает false, если ошибок не обнаружено, иначе возвращает массив с сообщениями об ошибках.
Отправка почты использует swiftmailer для отправки электронной почты. Любая идея, как сделать все лучше? Стоит ли что-то менять или все в порядке?

class Mail
{
public $flag = null;
public $name = null;
public $email = null;
public $message = null;
public $config = null;
public $errors = [];

function __construct($flag, $name, $email, $message, $config)
{
    $this->flag = $flag;
    $this->name = $name;
    $this->email = $email;
    $this->message = $message;
    $this->config = $config;

}

public function validateFields()
{   
    if (!empty($this->flag)) {
    $this->errors[] = 'SPAM FILTER ERROR =)';
    }

    if ( empty($this->name) | !preg_match('/^[a-zA-Z\s]+$/', $this->name)) {
        $this->errors[] = 'Enter valid name';
    }

    if ( empty($this->email) | !filter_var($this->email, FILTER_VALIDATE_EMAIL)) { 
        $this->errors[] = 'Enter valid email address';
    }

    if ( empty($this->message) ) {
        $this->errors[] = 'Please enter a message';
    }

    if ( empty($this->errors) ) {
        return false;

    } else {
        return $this->errors;
    }
}

public function sendEmail()
{
    $transport = (new Swift_SmtpTransport("{$this->config['SMTP']}", 25))
        ->setUsername("{$this->config['USERNAME']}")
        ->setPassword("{$this->config['PASSWORD']}");

    /// rest of email logic
}
}

Любые предложения будут очень признательны!

Спасибо.

how to improve my code - очень широкий вопрос ... и код, который вы разместили, очень минимален. Возможно, лучше пройти проверку кода codereview.stackexchange.com
user3783243 10.02.2019 21:57

добавьте еще несколько деталей, но я последую вашему совету и опубликую его в stackexchange ... даже не слышал об этом! Танос!

Alessandro Spreafico 10.02.2019 22:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
28
0

Другие вопросы по теме