@Blog{zip358.com}
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。
webpushのLaravelを使用しないパターンを箇条書き、フロントエンド側は
2024.11.14
おはようございます.webpushのLaravelを使用しないパターンを箇条書き、フロントエンドは過去記事を参照ください.まずwebpushを使用するにはパブリックキーとシークレットキーが必要になります.下記のURLより発行してみてください.
https://web-push-codelab.glitch.me
フロントエンド側でサービスワーカーの登録された識別データをバックエンドに送信.
// db.php: データベース接続の設定
function getDbConnection() {
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
} catch (PDOException $e) {
die("DB接続エラー: " . $e->getMessage());
}
}
// endpoint_register.php: エンドポイントをデータベースに登録
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$endpoint = $_POST['endpoint'];
$auth = $_POST['auth'];
$p256dh = $_POST['p256dh'];
if ($endpoint && $auth && $p256dh) {
$pdo = getDbConnection();
$stmt = $pdo->prepare("INSERT INTO push_subscriptions (endpoint, auth, p256dh) VALUES (?, ?, ?)");
$stmt->execute([$endpoint, $auth, $p256dh]);
echo "登録成功";
} else {
echo "エンドポイントデータが不完全です";
}
}
バックエンド側で下記のようなコードでデータを保存します.
次にminishlink/web-pushというライブラリを使用し登録されたデータを元に送信処理を行います.
composer require minishlink/web-push
// message_send.php: データベースからエンドポイントを取得し、プッシュ通知を送信
require 'db.php';
require 'vendor/autoload.php';
use Minishlink\WebPush\WebPush;
use Minishlink\WebPush\Subscription;
// VAPIDキーの設定
$auth = [
'VAPID' => [
'subject' => 'https://example.com',
'publicKey' => 'YOUR_PUBLIC_VAPID_KEY',
'privateKey' => 'YOUR_PRIVATE_VAPID_KEY',
],
];
$webPush = new WebPush($auth);
// データベースからサブスクリプション情報を取得
$pdo = getDbConnection();
$stmt = $pdo->query("SELECT endpoint, auth, p256dh FROM push_subscriptions");
$subscriptions = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($subscriptions as $sub) {
$subscription = Subscription::create([
'endpoint' => $sub['endpoint'],
'publicKey' => $sub['p256dh'],
'authToken' => $sub['auth'],
]);
// 送信するメッセージ
$message = json_encode(['title' => '通知タイトル', 'body' => 'メッセージ内容']);
// プッシュ通知の送信
$webPush->sendOneNotification($subscription, $message);
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, エンドポイント, キー, コード, サービスワーカー, サブスクリプション情報, シークレットキー, データベース, データベース接続, パターン, バックエンド, バックエンド側, パブリックキー, プッシュ通知, フロントエンド, フロントエンド側, ライブラリ, 接続エラー, 識別データ,
イラレの切り出し担当でモメル:あるある?
2024.05.02
おはようございます.Illustratorからパーツに切り出してから渡して頂きたいと思っています.切り出しとイラレファイルも渡して頂きたいです.デザイナーサイドからすればデザインを納品すれば終わりだと思うものの、結構切り出しって面倒なんですねー.
デザイナーさんがフロントエンドも分かっている方だとそこら辺まで分かっているので、切り出しやすいし切り出し画像もある状態で納品してくれる.有り難いことです.
ここまでして欲しいと思っているエンジニアさんは多いと思います.零細企業や中小企業の現状はエンジニアさんが切り出し作業も行っていることが多いと思いますが、結構、慣れない作業で時間がかかったりします😌.
WEBサイトって一人でも作れますが、会社で作る場合チームで作ると思います.分業化するよりも寄り添える現場になれば循環するのですけどね.分業にも良さありですが、自分は零細企業や中小企業では壁がない方が何かと良いかなと思います.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
illustrator, WEBサイト, イラレファイル, エンジニアさん, そこら辺, チーム, デザイナーサイド, デザイナーさん, デザイン, パーツ, フロントエンド, 中小企業, 作業, 分業, 分業化, 壁, 有り難いこと, 現場, 現状, 零細企業,
Laravel入門書は2日で半分進む。#phpcode
2022.12.24
おはようございます、今日はクリスマス・イブですね🎄。
Laravel入門書は2日で半分進みました、この記事がUPされている頃にはLaravel入門書は読了している頃だと思います。自分が持っているLaravel入門書はLaravel5.4対応なので正直な所、最新の入門書に切り替えた方が良いかも知れませんが、金銭的に苦しいので働きだしてから購入するべきか考えたいと思います。
入門書を隅から隅まで読んでも、使い倒せるそうにないのがちょっと不満ですね。この入門書は前半分はフロントエンドの人のために書かれているような気がします。なので、バックエンドエンジニアだけを担当するという方は、後半分から読んでいっても良いじゃないかなと思います。
中小企業で開発している人はフロントだけとかバックエンドだけとか考えずに、両方のことを行えるようにしといたら良いかもです。人手不足になったらフロントも手伝ってとなることが有るからです。
そういうことなので、全部理解するに越したことはないですね_(:3」∠)_。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Laravel5.4対応, Laravel入門書, イブ, クリスマス, バックエンド, バックエンドエンジニア, フロント, フロントエンド, 両方, 中小企業, 人手不足, 入門書, 全部, 前半分, 半分, 後半分, 所, 最新, 読, 隅,