Simfatic\FormHandler 在 Hostinger 上抛出库错误,但不在本地

问题描述 投票:0回答:1

所以我使用

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 清除并重新安装软件包,并联系存储库的所有者并提出问题。任何有关如何调试它的建议将不胜感激。

php forms hostinger
1个回答
0
投票

simfatic/boar
包中存在错误。 PSR-4 类自动加载要求您的目录和文件以命名空间 + 类名命名,但
Library/Validator
命名空间使用小写目录名称:

enter image description here

这适用于不区分大小写的文件系统(例如 Windows 上的 NTFS),但否则会失败,因为它不完全正确。

作为解决方法,您可以创建具有正确名称的符号链接(如果您对您的帐户具有 SSH 访问权限)或在上传后重命名目录。也可以在本地 Windows 计算机中更改大小写,但您需要分两步进行:

library
->
Library_
->
Library

如果您重新安装或升级软件包,此解决方法将会失效。

或者,将其报告为错误和/或提交包含修复的拉取请求。

© www.soinside.com 2019 - 2024. All rights reserved.