所以我使用
Simfatic\FormHandler
创建一个简单的表单来发送电子邮件,在本地测试一切正常。
我把这些东西放在 Hostinger 上,突然它说找不到
CommonValidations
,尽管它是软件包的一部分。
require(__DIR__.'/vendor/autoload.php');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
use Simfatic\FormHandler\FormHandler;
use PHPMailer\PHPMailer\PHPMailer;
use Dotenv\Dotenv;
$form = new FormHandler();
$dotenv = Dotenv::createMutable(__DIR__);
$dotenv->load();
$form->validate(function($validator) {
$validator->field('email')->isEmail()->isRequired();
$validator->field('fullname')->isRequired();
$validator->field('jobtitle')->isRequired();
$validator->field('phonenumber')->isRequired();
$validator->field('postcode')->isRequired();
$validator->field('services')->isRequired();
$validator->field('info')->isRequired();
$validator->field('companyname')->isRequired();
})->configMailer(function($mailer) {
$mailer->setFrom($_POST['email'], $_POST['fullname'], false);
$mailer->isSMTP();
$mailer->SMTPDebug = true;
$mailer->SMTPAuth = true;
$mailer->Port = $_ENV['PORT'];
$mailer->Host = $_ENV['HOST'];
$mailer->Username = $_ENV['EMAIL'];
$mailer->Password = $_ENV['PWD'];
$mailer->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mailer->isHTML(true);
$mailer->Body = "Body Goes Here";
$mailer->Subject = "Inquiry form submission from {$_POST['fullname']} @ {$_POST['companyname']}";
})->sendEmailTo($_ENV['EMAIL']);
echo $form->process($_POST);
有问题的错误:
找不到“Simfatic\Boar\Library\CommonValidations” public_html/vendor/simfatic/boar/src/Boar.php:13 堆栈跟踪:#0 public_html/vendor/simfatic/boar/src/Boar.php(18): Simfatic\Boar\Boar->__construct() #1 public_html/vendor/simfatic/formhandler/src/FormHandler.php(39): Simfatic\Boar\Boar::create() #2 public_html/mail.php(12): Simfatic\FormHandler\FormHandler->__construct() #3 {main} 抛出 public_html/vendor/simfatic/boar/src/Boar.php 第 13 行
我尝试使用 Composer 清除并重新安装软件包,并联系存储库的所有者并提出问题。任何有关如何调试它的建议将不胜感激。
simfatic/boar
包中存在错误。 PSR-4 类自动加载要求您的目录和文件以命名空间 + 类名命名,但 Library/Validator
命名空间使用小写目录名称:
这适用于不区分大小写的文件系统(例如 Windows 上的 NTFS),但否则会失败,因为它不完全正确。
作为解决方法,您可以创建具有正确名称的符号链接(如果您对您的帐户具有 SSH 访问权限)或在上传后重命名目录。也可以在本地 Windows 计算机中更改大小写,但您需要分两步进行:
library
-> Library_
-> Library
。
如果您重新安装或升级软件包,此解决方法将会失效。
或者,将其报告为错误和/或提交包含修复的拉取请求。