🥇

「Livewire 4の闇を攻略!SPA風開発で「イカれた」サイトを作る秘訣3選」~【php】今週の人気記事TOP5(2026/02/22)

に公開

「Livewire 4の闇を攻略!SPA風開発で「イカれた」サイトを作る秘訣3選」今週の人気記事TOP5(2026/02/22)

「発想がイかれてる」と言われたコーポレートサイトを作った話

概要:
エンジニアを魅了する「発想がイかれてる」ハイブリッド型コーポレートサイト開発記。Livewire 4を核に、GUI/CLI/Designerモードを実現。体験追求の技術挑戦とLivewire「闇」を解説。

ポイント:

  • Livewire 4でCLIモードをPHPのみで再現。
  • DOM morphやスクロール問題、Livewire「闇」の攻略。
  • Laravel/LivewireでSPA風アーキテクチャとCRT演出。

Laravelの複数形命名は Str::plural() で確認すれば迷わない

概要:
Laravelの命名迷いは、もう終わり!Str::plural() を活用すれば、モデルやテーブル名の単数・複数形はLaravelの内部ルールに則り一発で解決します。この秘訣で自動推論を最大限に活かし、開発効率とコード品質を劇的に向上させましょう。

ポイント:

  • Str::plural() でLaravel準拠の複数形を確実に特定。
  • dd() で即確認、命名ブレ解消で開発加速。
  • 自動推論強化、リレーション/保守性向上。

さくらのレンタルサーバーに Composer をインストールする

概要:
さくらのレンタルサーバーでComposerをコマンドとして活用し、PHP開発の効率を大幅に向上させる実践ガイドです。LaravelなどモダンなPHPフレームワークを共有ホスティングで運用するための鍵となる設定を徹底解説します。

ポイント:

  • レンタルサーバー環境でのComposerを安全かつ確実にインストールする手順
  • composer.pharcomposerコマンドとして認識させるPATH設定の具体例
  • シェルのrehashコマンドによるキャッシュ更新の重要性と仕組みを理解

PHP でたまに「あれこれ何だっけ?」ってなる記法

概要:
最新のPHPを使いこなすための決定版チートシート!「あれ、これ何だっけ?」を解消し、モダンな記法でコードを簡潔・堅牢に進化させ、開発効率を爆上げしましょう。

ポイント:

  • ?-?? でNull参照の不安を解消し、バグを未然に防ぐ堅牢なコード術。
  • match 式で複雑な条件分岐をスマートに記述し、コードの可読性を劇的に向上。
  • ... スプレッド演算子で配列や引数を自由自在に操り、冗長な記述を短縮化。

ローカルMTAからAmazon SESへ移行したら、Toヘッダ不正で 554 になった話

概要:
Amazon SES移行後、特定の通知メールが554エラーで送信不能に。ローカルMTAでは許容された「Toヘッダの構文不正」が、SESの厳密な検証で顕在化した原因と解決策を詳解します。

ポイント:

  • SES移行で厳密化するヘッダ検証と潜在バグ顕在化の教訓
  • ToTo_nameの厳密な区別と複数アドレス文字列の危険性
  • 「今まで動いていた」が通用しないレガシー環境移行時の注意点

「Laravel開発、コードが劇的にスッキリする方法。」今週の人気記事TOP5(2026/02/15)

Laravelでサービス・リポジトリパターンは相性悪いのか

LaravelのModelは多機能ゆえに肥大化しやすく、ファットモデルになりがち。これを避けるため、SQL組み立てはRepository、複数SQLや前後処理はService、Modelはリレーション定義等に限定する。特に、ローカルスコープはModelに持たずRepositoryで記述を基本とする。これにより、ServiceやControllerはスッキリ保たれる。PHP8のDTO活用で型安全なコードも実現可能。

EC-CUBE 4プラグインにCSS/JSなどの静的ファイルを同梱する方法

EC-CUBE 4.3+プラグインにCSS/JS等の静的ファイルを同梱するには、Resource/assetsに配置します。インストール時にhtml/plugin/プラグインコード/assets/へ自動コピーされ、Twigテンプレートからasset('プラグインコード/assets/ファイルパス', 'plugin')で読み込めます。更新・アンインストール時の挙動や、開発時のキャッシュバスティング(バージョン付与)も考慮すると良いでしょう。

Laravel Sanctumで"Session store not set on request"がSafariだけで発生する問題

SafariでLaravel SanctumのSPA認証時に「Session store not set on request」エラーが発生する問題は、SafariのITP機能がRefererヘッダーを削除するために発生します。

原因: SafariのITPがメールリンククリック時にRefererヘッダーを削除し、Sanctumがフロントエンドからのリクエストと判定できなくなるため。

解決策: EnsureFrontendRequestsAreStateful ミドルウェアを継承し、Refererヘッダーがない場合でも、メールリンクから直接アクセスされる特定のルート(署名付きURLで保護)をフロントエンドリクエストとして扱うようオーバーライドすることで、セッションが正しく設定されるようにしました。

EC-CUBE 4プラグインのパッケージングを自動化する方法

EC-CUBE 4プラグインのパッケージングをGitHub Actionsで自動化する方法。GitHubリリース発行時にgit archiveでソースコードをtar.gz形式にパッケージングし、リリースアセットに自動アップロードする。不要なファイルは.gitattributesexport-ignoreで除外。これにより、手作業によるパッケージングの手間が省け、配布ミスを削減できる。zip形式への対応も可能。

EC-CUBE 4のOrderStateMachineを理解する - Symfony Workflowで実現する受注ステータス管理

EC-CUBE 4.3+ では、Symfony Workflow Component を使用して受注ステータス管理(OrderStateMachine)を実現しています。これにより、定義されたルールに基づき不正な遷移を防ぎ、決済・在庫・ポイント処理などの自動化を可能にします。プラグイン開発者は、遷移イベントのフック、ガードによる動的な制御、カスタムステータス・遷移の追加を通じて、受注処理の柔軟なカスタマイズが可能です。

「Enumでタイポ・修正の手間をゼロに!Laravel開発爆速化。」今週の人気記事TOP5(2026/02/08)

Claude Code で LSP(phpactor) と Grep 検索の効率を比較してみた

EC-CUBEのItemHolderInterface実装クラス調査で、Claude CodeのGrep検索(1ターン、約13回ツール呼び出し)とphpactor LSP(約10ターン、20回以上ツール呼び出し)を比較。Grepは「implements ItemHolderInterface」のパターン検出と参照箇所網羅で十分な精度。phpactorはCLI利用時のオーバーヘッドと構文把握の試行錯誤が非効率。LSPは同名クラス多数や複雑な型階層、エディタ内リアルタイム利用で真価を発揮する。本件ではGrepが効率的。

【Laravel】「えっ、数値じゃないじゃん!」decimal型が文字列になる理由

Laravelでdecimal型が文字列として扱われるのは、コンピューターが2進数で小数を計算する際に誤差が生じるためです。10進数の小数は2進数では循環小数となり、有限なメモリで正確に表現できないため、IEEE754規格で近似値として扱われます。この近似による誤差を避けるため、Laravelではdecimal型を精度を落とさないよう文字列として扱います。お金の計算など正確性が求められる場面ではこの挙動が重要です。

【Laravel】ステータス機能実装はEnum型でif分岐を解消!

Laravelでステータスやカテゴリのような固定選択肢を扱う際、従来のマジック文字列/ナンバーやif文による実装はタイポや修正の手間、コード重複といった問題を引き起こします。PHP 8.1以降のEnum型を用いることで、これらの問題を解決できます。Enum型は選択肢を名前付き定数として安全に管理し、IDE補完によるタイポ防止、一元管理、可読性・保守性の向上を実現します。DB連携にはModelのキャスト設定が有効です。Enum型は「あらかじめ決まった選択肢」を扱う場面で、コードの品質向上に貢献します。

AndroidアプリからMySQL 8に直接JDBC接続する方法

AndroidアプリからMySQL 8へ直接JDBC接続するには、java.sql.SQLTypeに依存しないmysql:mysql-connector-java:5.1.49ドライバーを使用します。これはAndroid SDKにSQLTypeが存在しないためです。

注意: この方法はセキュリティリスク(認証情報漏洩、SQLインジェクション等)が高いため、本番環境やインターネット経由での使用は絶対不可。閉じたローカルネットワーク、社内システム、開発・検証環境でのみ限定的に利用し、本番ではREST API等の利用を推奨します。ネットワーク通信はバックグラウンドスレッドで行い、開発環境ではnetwork_security_config.xmlでのクリアテキスト通信許可が必要です。MySQL 8の新機能は完全にはサポートされない可能性があります。

NativePHP Mobile v3でカスタムKotlinコードを実行する

NativePHP Mobile v3は、PHPからカスタムKotlin/Swiftコードを実行できるプラグインシステムを導入しました。native:plugin:createで雛形生成後、HelloKotlinFunctions.ktでネイティブコードを実装し、nativephp_call()でPHPから呼び出します。nativephp.jsonでプラグイン設定を行い、native:runでビルド・実行できます。これにより、PHPでモバイルアプリ開発をしつつ、必要に応じてネイティブ機能を利用可能になります。

「Laravel BoostでAI連携!未来の開発を先取りしよう。」今週の人気記事TOP5(2026/02/01)

Laravelは単なるバックエンドフレームワークではない。急速に進化し続けるLaravelエコシステム。

LaravelはPHPバックエンドフレームワークに留まらず、Web開発に必要な全てを提供するエコシステムへと進化しています。公式パッケージ・機能の充実、モダンなテストフレームワークPest、Inertia.js/Livewireによるフロントエンド連携、AI連携(Laravel Boost等)を特徴とします。さらに、Laravel Cloud/Nightwatchといった商用プロダクトで持続的な開発体制を確立し、AI時代にも対応する「フルスタックフレームワーク」として進化を続けています。

Rectorを利用してPHP関連のアプデを楽にする

PHP/Laravelのバージョンアップに伴うコード修正はRectorで自動化できます。ComposerでRectorを導入し、rector.phpを設定。withPathsで対象ディレクトリを指定し、PHPバージョンやLaravelバージョンに合わせたルールセット(withPhpSets, LaravelLevelSetList)を適用します。--dry-runで変更内容を確認し、必要に応じてwithSkipで不要なルールを除外してから実行します。ただし、一部の自動変換は意図しない動作を引き起こす可能性もあるため、動作確認は必須です。

PHPは意外に悪くない?イメージと現実とメリット・デメリット

PHPは初学者に優しく、環境構築が容易なため入門に適しています。しかし、素のPHPは現代の開発現場では少なく、脆弱性から堅牢な言語へのシフトが進んでいます。PHPで基礎を学んだ後、他のスキルを習得することが重要です。扱う側の問題であり、PHPには良い特徴も存在します。

LaravelのCSRF対策を内部実装から理解し、素のPHPで再現してみる

LaravelのCSRF対策は、ValidateCsrfTokenミドルウェアが担当。セッション開始時に40文字のランダムトークンを生成し、@csrfディレクティブでhidden inputとしてフォームに埋め込まれる。POSTリクエスト時には、フォームやヘッダーからトークンを取得し、セッションのトークンとhash_equals()で安全に比較・検証。一致しない場合は419エラーとなる。記事では、この内部実装を素のPHPで再現し、CSRF攻撃の仕組みやトークン検証の重要性を解説している。

AWS AppConfigでFeature Flagを試してみた【Laravel連携】

AWS AppConfigをLaravelと連携させ、Feature Flagを実装する記事。AppConfigはAWSマネージドで、環境別管理、段階的デプロイ、IAM制御が可能。「Feature Flags型」でカスタム属性(ユーザーターゲティング)やロールアウト率を定義できるが、ロールアウトはアプリ側での実装が必要。既存AWS利用プロジェクトや厳密な環境・権限管理に向く。

CareNet Engineers

Discussion