- 1. Livewire\Exceptions\CorruptComponentPayloadException: Livewire encountered corrupt data when trying to hydrate the [abcdefg.index] component. Ensure that the [name, id, data] of the Livewire component wasn’t tampered with between requests.
- 2. PHPとMySQLの接続〜登録〜取得
- 3. PHP,Smartyと、jquery ui で作成。予約システム、日別照会機能 & 画面
- 4. Amazon S3上にアップロードされているファイルの存在確認は、アクセス権限が無いとできない
- 5. 【Laravel】GitHubのPush時にPHPUnitでテストする
- 6. [PHP8対応] PHP拡張モジュールを自作してBlurHashの計算を高速化する
- 7. PHPerkaigiで感じたオフラインカンファレンスの魅力
- 8. PHPでコードゴルフ – Base32
- 9. 【WordPress】Advanced Custom Fields(ACF)で絵文字が保存できない問題を解決する
- 10. laravel コマンド集
- 11. PHPのメモリ容量とは
- 12. [Laravel]nullが入る可能性のあるカスタムバリデーションを作成する場合
- 13. 【WordPress】「次回のコメントで使用するため…」を削除する方法
- 14. allow_url_fopenが0のサーバーで外部ファイルを取得する方法
- 15. レンタルサーバーにTiny Tiny RSSをインストール
- 16. PHPerKaigi 2024 コードゴルフ挑戦記録
- 17. PHPerKaigi 2024でレギュラーセッション登壇してきました!
- 18. 【Laravel】useした時に`Class not found`とでて困った話
- 19. 【PHP】マイナーフレームワーク「Flow」を試してみる~イベント管理編~
- 20. 「AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~」をPHPで解いてみた
Livewire\Exceptions\CorruptComponentPayloadException: Livewire encountered corrupt data when trying to hydrate the [abcdefg.index] component. Ensure that the [name, id, data] of the Livewire component wasn’t tampered with between requests.
超悩まされていたこのエラー
“`
Livewire\Exceptions\CorruptComponentPayloadException: Livewire encountered corrupt data when trying to hydrate the [abcdefg.index] component.
Ensure that the [name, id, data] of the Livewire component wasn’t tampered with between requests. in file hijk.php on line 21
“`
何をやってもエラーになるので対処できずになやんでいたが、
どうもJavascriptで扱える整数を超えている値を扱った場合、出る様子。例えばこんな感じのコード。
“`
public function mount()
{
$this->datalist[2902364376262391407]=”AAAAA”;
$this->datalist[290246481
PHPとMySQLの接続〜登録〜取得
1)**mysqli_connect**
PHPからMySQLに接続する
**※SQLに接続できないケースも追加する(if文)**
“`SQL
function dbConnect()
{
$link = mysqli_connect(‘<ホスト名>”<ユーザー名>”<パスワード>”<データベース名>‘);
if(!$link) {
echo ‘Error:データベースに接続できませんでした’ . PHP_EOL;
echo ‘Debugging error:’ . mysqli_connect_error() . PHP_EOL;
exit;
}
return $link;
}$link = dbConnect();
mysqli_close($link);
“`2)**mysqli_query**
①テーブルを作成する
※エラーがあった場合、エラーメッセージを表示するよう
PHP,Smartyと、jquery ui で作成。予約システム、日別照会機能 & 画面
### ■開発環境
・RedHat 7
・PHP 7.4
・smarty 2.xxxx
・oracle 19### ■インターフェース
01
![ui_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/124358e2-37ca-6b69-83fe-abecf664abc1.png)02
![ul_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/a4f99272-c33e-2c4c-ba7e-3b70d1b070c0.png)03
![ui_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/56b895a1-e40b-b7be-37c4-940b066f52ae.png)### ■ソースコード
#### ●PHPソース
“`php
Amazon S3上にアップロードされているファイルの存在確認は、アクセス権限が無いとできない
## はじめに
この記事はLaravelアプリケーションの実装において、
Amazon S3(以下、S3と記載)にファイルがアップロードされているかをチェックしようとして、
3時間近く沼ってしまった今日の自分に捧げます。## 環境
Laravel: 8
PHP: 7.4
PC: MacOS14(Sonoma)## 結論
S3のバケットポリシーによって、S3にアップロードされているファイルへのアクセス権限がない状態だと、
LaravelのStorageクラスを使用してもファイルの存在が確認できなくなる。“`php
// ファイルへのアクセス権限がないと、結果は必ずfalse(ファイルが存在していない)になる
Storage::exists(‘S3上のファイルパス’);
“`バケットポリシー以外のアクセス権限でも、同様の影響を及ぼすかは不明。
## 経緯
S3で同じ名前のファイルが既に存在するかどうかの確認が必要だったため、以下のコードを実装しました。“`php
if (Storage::exists(‘ファイルパス’)) {
// 同じ名前のファイルが
【Laravel】GitHubのPush時にPHPUnitでテストする
# はじめに
こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。
前回の記事
https://qiita.com/keitaMax/items/1d995293f383f66b29af
今回は前回作成したPHPUnitをGitHubActionsでGitHubにPull Requestを出した時に、テストできるようにしようと思います。
# GitHubActionsのymlファイルを作成
まずはGitHubActionsを作成します。
https://zenn.dev/naonao70/articles/44bc859c3ebc37
この記事を参考に作成しました。
`.github/workflows`フォルダの中に`phpunit.yml`を作成します。
“`yaml:phpunit.yml
name: phpuniton: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-direct
[PHP8対応] PHP拡張モジュールを自作してBlurHashの計算を高速化する
# BlurHashについて
https://blurha.sh/Webサイトにおける画像のプレースホルダーとして提案されているものです。画像の読み込みには時間がかかるので、読み込みが完了するまでの間に仮に表示させておく画像がプレースホルダーです。
ASCII文字30文字程度という非常に少ない情報量で保存できるので、HTMLに埋め込んでおくことも可能です。それでいて復元後の画像は色調をある程度再現しているので、クライアント側で画像を復元して表示することにより、真っ白な画像を出すよりもUXを向上できるでしょう。見た目がぼかしフィルターをかけたようなのでBlurとついています。例を示しましょう。以下の画像をBlurHashに変換し、BlurHashからプレースホルダー画像を生成したものです。この色調をASCII文字28文字で表現しています。
![sample.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/204084/0e8c4960-1a01-b19d-c861-7e3c16423d1e.jpe
PHPerkaigiで感じたオフラインカンファレンスの魅力
## はじめに
社員の皆さんはこんな奴が最近エンジニアになって頑張ってるんだなと暖かい目で読んでいただければと思います。社外の方やエンジニアを目指している方は少しでも学習の参考や、コネクター・ジャパンに興味を持っていただければと思います。
## 自己紹介
未経験から独学でプログラミング学習し5ヶ月でLaravelでポートフォリオを作成しました。そして現在は自社開発企業に入社し、WEBエンジニアとしてプロダクト開発に携わっています。## この記事を書いた理由
3/7(木)~3/9(土)にセントラルパーク中野で開催されたPHPerKaigi2024という技術カンファレンスに初めて参加しました。私がエンジニアになる前の時期(2023年より前)は、コロナの影響もあってオフラインイベントが出来なかった話を良く他のエンジニアから聞きましたが、やっと落ち着いてオフラインイベントが出来るようになりました。
オフラインイベント参加してないけど、ボッチだし遠いし…となかなか重い腰が上がらないエンジニアに向けて書きます。
もっとエンジニアが、オフラインイベントに参加してほしいと思いこの
PHPでコードゴルフ – Base32
2024年3月7日~9日、[PHPerKaigi 2024](https://phperkaigi.jp/2024/)が開催されました。
私はオンライン参加勢だったのですが、メインであるセッション・LT以外に、PHPerチャレンジやコードゴルフといった企画も用意されていて非常に楽しませてもらいました。コードゴルフは、与えられた仕様を満たすコードをいかに短く実装できるかを競うゲームで、今回は3問出題されました。
これが楽しかったのでいろいろやっていたところ、第2問、第3問で1位を取ってしまいました。
せっかくなので、どんなコードを書いたのか紹介しておきます。なお、問題および私を含めた回答者のコードはこちらで公開されています。
https://fortee.jp/phperkaigi-2024/go/golf## 第2問:Base32
https://t.nil.ninja/phperkaigi/2024/golf/q/base32/Base64ならぬ[Base32](https://ja.wikipedia.org/wiki/%E4%B8%89%E5%8D%81%E4%B
【WordPress】Advanced Custom Fields(ACF)で絵文字が保存できない問題を解決する
日頃からお世話になっているACFで、絵文字利用前提のフィールドを作ったものの、なぜか保存できない問題に遭遇。
調べてみると、どうやら `update_post_meta` や `update_user_meta` でデータベースの `postmeta` テーブルに絵文字を含むデータを保存しようとすると、絵文字部分が空白に変換されてしまう模様。参考:[【WordPress】絵文字を含むカスタムフィールド値のDB更新について](https://tsukuriba.co.jp/6046)
解決策としては参考リンクにある通り、保存前にデータをHTML数値エンティティにエンコードし、読み込む際はデコードする、という手順を踏めば良い模様。
ACFのドキュメントを読むと、値の保存前に何かする用のフックと、値の読み込み後に何かする用のフックが、それぞれ用意されていた。
詳細はそれぞれ公式ドキュメントを参照。`acf/update_value`:https://www.advancedcustomfields.com/resources/acf-update_value/
`acf/load_
laravel コマンド集
# 初めに
laravelの開発中によく使うコマンドをまとめました。
参考にしてください。# laravelコマンド集
## Eloquentモデル自動生成
“`php
php artisan make:model モデル名
“`## マイグレーションファイル作成
“`php
php artisan make:migration create_テーブル名_table –create=テーブル名
“`# 参考文献
https://qiita.com/niisan-tokyo/items/9c799989cb535489f201
https://qiita.com/kamome_susume/items/22fe17935bbd1760b7f7
参考にさせていただきました。
ありがとうございます!
PHPのメモリ容量とは
### はじめに
負荷テストをしている際に、タイムアウトエラーが発生してしまい、原因を探ると変数に大量のデータが入っていることが要因だった。
対策としてはプログラムの方で一つの変数に大量のデータが入らないように改修したが、それと同時にphpのメモリ上限をあげる方法があるということを知った。
それまではphpのメモリという概念自体を意識していなかった上に、理解をしていなかったためQiitaを執筆する。### phpのメモリとは
まずphpのメモリとは、phpのプログラムを実行する際に使用されるメモリの容量のことである。### phpのメモリに関するエラーが発生した際の対処
メモリ容量の上限は任意に設定することができるが、メモリエラーやタイムウトエラーが発生した際に、上限を上げるというのは安易で、プログラムの方でおかしな処理の仕方をしていないか確認することが重要である。
例えば今回の自分のように、変数に大量のデータが入るようになってしまっていたり、for文で大きな負荷がかかる処理の書き方をしていないかを確認することが重要。
phpのメモリの上限を上げるということは最終手段と考える
[Laravel]nullが入る可能性のあるカスタムバリデーションを作成する場合
## 備忘記
– カスタムのバリデーションRuleを作成したときにnullの値のものがRuleを通ってないことが発覚。
– その解決策を記載します。### 前提
Laravel Framework 10.46.0
PHP 8.3.1### 方法
コマンドはこれ!
“`php
php artisan make:rule Uppercase –implicit
“`もし無しで作成しちゃったら、、、?
“`php
class Uppercase implements DataAwareRule, ValidationRule
{
# ここの部分を追加する
/**
* Indicates whether the rule should be implicit.
*
* @var bool
*/
public $implicit = true;“`
【WordPress】「次回のコメントで使用するため…」を削除する方法
WordPress 4.9.6からコメント投稿フォームに追加された「次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。」を削除・非表示にする方法を紹介します。
:::note warn
※ これは2018-05-23に[個人ブログ](https://bicstone.me)で公開した記事を移植し、[CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/deed.ja)で提供しています。情報は古い可能性があります。
:::
## コメント投稿フォームにチェックマークが増えた
2018年5月19日に更新されたWordPress 4.9.6にアップデートすると、[`comment_form`](https://developer.wordpress.org/reference/functions/comment_form/)コマンドが用いられているテーマでコメント投稿コメント欄の送信ボタンの真上に次のスクリーンショットのようなチェックボックスとテキスト「次回のコメントで使用するため
allow_url_fopenが0のサーバーで外部ファイルを取得する方法
allow_url_fopenに0が設定されたレンタルサーバーではPHPのfile_get_contentsなどを用いて外部のファイルが取得できません。これを回避して取得する方法を紹介します。
:::note warn
※ これは2017-07-19に[個人ブログ](https://bicstone.me)で公開した記事を移植し、[CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/deed.ja)で提供しています。情報は古い可能性があります。
:::
## レンタルサーバーのセキュリティが厳しい
(今は亡き)ウェブクロウというPHPが動作する無料サーバーにてPHPのfile_get_contentsを用いて外部ファイルを取得しようとしました。しかし、php.iniにてallow_url_fopen=0に設定されており、取得ができませんでした。
![取得エラーが発生したスクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0
レンタルサーバーにTiny Tiny RSSをインストール
レンタルサーバーにTiny Tiny RSSを簡単にインストールする方法を紹介します。今回はさくらのレンタルサーバでの例を紹介しますが、PHPとMySQLが動作する一般的なレンタルサーバーであれば、概ねインストールできます。
:::note warn
※ これは2017-05-28に[個人ブログ](https://bicstone.me)で公開した記事を移植し、[CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/deed.ja)で提供しています。情報は古い可能性があります。
:::
## Tiny Tiny RSS とは
Tiny Tiny RSS (略称tt-rss)とはサーバーサイドのオープンソースRSSクライアントです。インストールしたURLにアクセスするだけで見られるのでスマホなどからどこでも見られる・高頻度でRSSを取得しに行くので更新頻度が高いサイトでも逃さずキャッチしやすい・登録したレンタルサーバー業者以外に登録しているRSSの情報が知られないなどの特徴があります。一方、定期的にtt-rssを
PHPerKaigi 2024 コードゴルフ挑戦記録
## はじめに
>PHPerKaigi(ペチパーカイギ)は、PHPer、つまり、現在PHPを使用している方、過去にPHPを使用していた方、これからPHPを使いたいと思っている方、そしてPHPが大好きな方たちが、技術的なノウハウとPHP愛を共有するためのイベントです。2024年3月7日(木)〜 3月9日(土)開催でした。
https://phperkaigi.jp/2024/
## コードゴルフとは
https://t.nil.ninja/phperkaigi/2024/golf/
今年はコードゴルフが企画されていました。
与えられたお題を満たすコードをできるだけ短く書け、という競技です。## 結果
時間がなくてあまりできなかったですが
問1: 9位
問2: 8位
問3: 6位
という結果でした。
こちらはどういった回答をしたのかを記事にしたいと思います。## 解説
### 問1: FizzBuzz
![スクリーンショット 2024-03-11 16.12.54.png](https://qiita-image-store.s3.ap-northeast-1.a
PHPerKaigi 2024でレギュラーセッション登壇してきました!
## はじめに
>PHPerKaigi(ペチパーカイギ)は、PHPer、つまり、現在PHPを使用している方、過去にPHPを使用していた方、これからPHPを使いたいと思っている方、そしてPHPが大好きな方たちが、技術的なノウハウとPHP愛を共有するためのイベントです。
2024年3月7日(木)〜 3月9日(土)開催でした。
https://phperkaigi.jp/2024/
## 登壇セッション
https://fortee.jp/phperkaigi-2024/proposal/939533ae-f26a-4bd3-a8e4-c88d820943c6
去年に引き続きプロポーザル採択での登壇となりました。
([去年の記事](https://qiita.com/yamamoto_hiroya/items/5e3780f163093176f34e))
トーク聞いていただいた方、
【Laravel】useした時に`Class not found`とでて困った話
# はじめに
こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。
今回は、`Class “Lib\UsePost” not found`というエラーがでてしまって困った話をします。
# 困ったこと
Laravelプロジェクト直下に`Lib`というディレクトリを作成し、’UsePost.php’というファイルを作成したのですが、
これをコントローラから読み込もうとしたときに`Class “Lib\UsePost” not found`となってしまい読み込むことができなくて困ってしまいました。
# 最初に実装した内容
最初に実装した内容としては、`PostController`と`UsePost`を以下のように実装しました。
“`php:PostController.php
【PHP】マイナーフレームワーク「Flow」を試してみる~イベント管理編~
# 初めに
「ある処理が実行された時に、別の処理を割り込みで実行させたい」という時ありますよね?「APIのレスポンスが作成されたら、それをログに書き出す」のような。
このような**イベント管理**の処理を実現するために、Flowには”**Signal & Slot**”と呼ばれる機能が備わっています。# イベント管理とは
イベント管理は、「ある処理をトリガーとして別の処理が実行される」という概念です。GUIアプリケーションにおいて、ユーザの操作に応じて対応する処理が実行される仕組みを指します。バックエンドよりはフロントエンドの開発においてより頻繁に利用される印象です。# Flowにおけるイベント管理
Flowでは、**Signal & Slot**という機能でイベント管理を行います。
特定のイベント(Signal)が発生したときに特定の処理(Slot)を実行するというものです。※AOPと似てますよね。違いについては後述。
:::note info
Signal & Slotは、C++のQt(キュート)というフレームワークで利用されていた概念です。Flowではその概念を元
「AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~」をPHPで解いてみた
# はじめに
[@drken](https://qiita.com/drken)さんの記事である[「AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~」](https://qiita.com/drken/items/fd4e5e3630d0f5859067#%E7%AC%AC-4-%E5%95%8F–abc-087-b—coins-200-%E7%82%B9)にはPHPの解答はないので、類題も含めてPHPで解いてみました。
※筆者はPHP初心者なので、解答は決してきれいなものではないです。
リファクタリングもしておらず、実際に一番最初に書いて、正解となったコードを載せています。
その点はご了承ください:bow:また、こういう解き方もあるよ!という方は、優しくコメントで教えていただけますと幸いです:relaxed:
# まず、解いてみよう!
## 試行錯誤しよう
「よし、解き方がわからなかったからちょうどよかった。どれどれ、答えは?」
と思ったそこのあなた!とにかく、**もう30分だけ粘ってみてください!**
「こうし