#php #push-notification #composer-php #autoload #web-push
#php #push-уведомление #композитор-php #автозагрузка #web-push
Вопрос:
Итак, я пытаюсь настроить службу push-уведомлений на PHP, и я использую библиотеку web-push-php из MinishLink. Но по какой-то неизвестной причине (для меня) он выбрасывает меня Class 'MinishlinkWebPushWebPush' not found
.
Я не делаю ничего другого (или фантазирую прямо сейчас) и просто выполнил все шаги, упомянутые в этом репозитории README.md .
Внизу есть часто задаваемые вопросы, и эта проблема также указана (я нашел ее через пару часов 🙁 ) и предлагает добавить require __DIR__ . '/path-to-my-vendor/autoload.php';
. Но это не работает.
Пример кода из репозитория (кроме того, это то, с чем я испытываю свою удачу, чтобы просто настроить web-push up!)
require __DIR__ . '/../vendor/autoload.php';
use MinishlinkWebPushWebPush;
use MinishlinkWebPushSubscription;
// here I'll get the subscription endpoint in the POST parameters
// but in reality, you'll get this information in your database
// because you already stored it (cf. push_subscription.php)
$auth = array(
'VAPID' => array(
'subject' => 'https://github.com/Minishlink/web-push-php-example/',
'publicKey' => file_get_contents(__DIR__ . '/../keys/public_key.txt'), // don't forget that your public key also lives in app.js
'privateKey' => file_get_contents(__DIR__ . '/../keys/private_key.txt'), // in the real world, this would be in a secret file
),
);
$webPush = new WebPush($auth);
$subscription = Subscription::create(json_decode(file_get_contents('php://input'), true));
$report = $webPush->sendOneNotification(
$subscription,
"Hello! 👋"
);
// handle eventual errors here, and remove the subscription from your server if it is expired
$endpoint = $report->getRequest()->getUri()->__toString();
if ($report->isSuccess()) {
echo "[v] Message sent successfully for subscription {$endpoint}.";
} else {
echo "[x] Message failed to sent for subscription {$endpoint}: {$report->getReason()}";
}
Комментарии:
1. Вы установили его с помощью composer?
2. Hii @Wimanicesir Да, я установил его с помощью
composer require minishlink/web-push
3. Hii @IncredibleHat Да, я думаю, что путь для автозагрузки правильный, потому что, если я укажу неправильный путь, он выдаст исключение, в котором не найден файл / каталог (поскольку его требуется)
4. Верно, я понял это после запроса lol. Вы пробовали не использовать
use MinishlinkWebPushWebPush;
вверху (прокомментируйте эту строку) и вместо этого попробуйте$webPush = new MinishlinkWebPushWebPush($auth);
напрямую?5. @IncredibleHat удаление use MinishLink/WebPush / WebPush, а затем использование встроенного метода ничем не отличалось… и я получил точно такую же ошибку