composer require と composer remove 結論: composer.lock を作り直すしかない composer.lock を作り直したくない 依存をきれいに消すコマンドは無い composer update コマンドをうまく使う composer update する場合の注意点 結論 composer require と com…
Guzzle とは リクエストオプションの指定の方法 例外処理の方法 例外の構造 例外の意味 GuzzleException まとめ Guzzle とは HTTP リクエストを送りたいとき、例えば、Web APIを叩きたい時、PHP では Guzzle という HTTP クライアントライブラリが最も有名で…
結論 このプラグイン https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode を使うとできるようになります。「PHP」というシンプルなプラグインのため、他と間違えないようにしてください。 このプラグインをインストールすると、…
環境 はじめに AuthenticatesUsers::login の中でやっていること validateLogin hasTooManyLoginAttempts まわり ThrottlesLogins::hasTooManyLoginAttempts attemptLogin それ以降の処理 環境 PHP 7.3 Laravel 5.8 はじめに Laravel では標準で認証の機能が…
はじめに PHPのGuzzleHttp *1 を利用し、以下のようなコードを書いた。 guzzleClient は コンストラクタDIなどを利用して // $this->guzzleClinet = new \GuzzleHttp\Client(); を差し込むようにする $response = $this->guzzleClient->post($url); } catch …
Laravel の HTTP Test Laravel には HTTP テストという機能がある https://readouble.com/laravel/8.x/ja/http-tests.html このテストはめちゃめちゃ便利で、実際にリクエストを送って、返ってくるレスポンスをシミュレートできる。 get('/'); $response->as…
はじめに Laravel Artisan の標準出力メソッドたち verbosity 引数について Laravel のドキュメント はじめに 私は議事録をAIでいい感じにするツールである「ワンミニッツ」を開発しています。 one-minutes.com そこで Laravel の Artisan を使ってコマンド…
前提 Laravel のスケジューラーを Docker で動かす ログ(CloudWatch Logs)の課題 JSON 形式でログを出す まとめ 前提 PHP + Laravel で、Web サービスを開発しており、Laravel で実装した Web API が WAS ECS (Elastic Container Service) で動いているの…
@phpstan-ignore-line @phpstan-ignore-next-line @phpstan-ignore [error identifier] エラー識別子 (error identifier) の確認方法 参考 PHPStan のエラーを無視したい時があると思います。 例えば、局所的に使われる private メソッドについて PHPDoc を…
背景 php7ccを利用したチェック php7ccのインストール php7cc の使い方 PHP7化にあたり修正が必要だった箇所 古い形式のコンストラクタ 参照渡しnewの削除 preg_replace 関数の e 修飾子が使えなくなった 参考 String, Int という名前のクラスは定義できなく…
先日、こんな事件がありました。 どういうことなのか もっとわかりやすく 何が間違いなの? 具体的に動くコードで見てみる わかりましたか? 先日、こんな事件がありました。 func; $func(); // これ以降 $func は使われていない } } このようなコードがあり…
Thorowable Error Exception RuntimeException LogicException まとめ PHP7の例外のうちよく使う例外と構造は以下の通りです。 Thorwable Error Exception RuntimeException LogicException もっと詳細な図は以下の記事を見るとわかりやすいです。 qiita.com…
はじめに PHP 8.0 / 8.1 で個人的にめっちゃ使いたい機能3選 名前付き引数(PHP 8.0) コンストラクタのプロモーション(コンストラクタ引数のプロパティ化) Readonly Property おわりに 余談: ドメイン駆動設計について はじめに 遅れました。この記事は P…
現象 原因 withHeaders() メソッドについて 対応 その他の対応 現象 Laravel 11 で、ファイルダウンロードを実装したく、 response()->download() を使った 実装
はじめに JSON 形式の Web API とは Laravel で JSON を返す基本的な実装 JsonSerializable インタフェースを使う JsonSerializable を使うと便利な点 想定外の例外が発生した場合の対応 Laravel デフォルトのエラー画面 Laravel のレスポンス形式は Accept …
composer で phpQuery をインストールする htmlをパースする まとめ composer で phpQuery をインストールする Composer が入っている前提とします。 composer require electrolinux/phpquery htmlをパースする Guzzleでリクエストをして、返ってきたHTMLを…
Guzzleについて Guzzle という PHP の HTTP クライアントがある。 github.com このライブラリ、めちゃめちゃ使われているし、基本的には使い勝手も良い。僕も PHP で Web API を叩く時などには基本的にはこれを使う。 違和感 しかしある時に違和感に気づく。…
FFmpeg の mix で音声合成したら音量が小さくなる FFmpeg について なぜ音量が小さくなるのか 対処方法 merge と mix どっちを使うべきか まとめ FFmpeg の mix で音声合成したら音量が小さくなる 議事録ツール「ワンミニッツ」では、複数人の会議音声を合成…
assertDatabaseHas について OK NG assertDatabaseHas について Laravel には assertDatabaseHas という、データベースにデータが存在するかどうかチェックするアサーションがあります。 詳細は Laravel のドキュメントの「データベーステスト」を見てくださ…
PHPカンファレンス関西2025が、7月18日(金)〜7月19日(土)に神戸で開催されます。 発表のプロポーザルが4/20 に〆切となり、出揃った形となります。この中からいくつかがスタッフによって採択され、実際に発表されることになります。 プロポーザル一覧は以下…
AWS ECS について 失敗例1: オートスケールで壊れる デプロイ時にも同じ問題が発生する 失敗例2: コンテナが死んでタスクが落ちる まとめ AWS ECS について AWS ECS は、 クラスタの中にサービスがあり、 サービスの中にタスクがあり、 タスクの中にコンテナ…
はじめに スタブファイル スタブファイルについて スタブファイルも PHPStan の解析にかけたほうがいいのか? スタブファイルに関する設定 スタブファイルで Class not found エラーが発生した場合 訳者補足: 最後の「“Class not found” in a stub file?」と…
はじめに JSON 形式のログを送ると何がいいのか 今回のサーバー構成 Laravel から JSON でログを送るには スタックトレースも出したい 課題 まとめ はじめに この記事は Qiita Laravel Advent Calendar 2023 の3日目の記事です。 1日目はこのカレンダー作成…
PHPStan を実行していると、以下のように、単に Error とだけ表示された XXXXXXXXXX の部分には人によって色々な文章が表示される -- ----------------------------------------------------------------------------------------------- Error -- ---------…
composer ライブラリの依存エラー エラーの見かた 解決方法 詳細な解決方法 composer update guzzlehttp/psr7 guzzlehttp/promises 最後に composer ライブラリの依存エラー composer で aws/aws-sdk-php のライブラリをインストールしたところ、以下のよう…
Handler の処理を見ていく 最初の部分 次の部分 最後の部分 $request->expectsJson() Laravel は、デフォルトで例外をキャッチして、サーバーエラーの表示をしてくれる。 この処理を行っているのは、 App\Exceptions\Handler である。 このクラスは Illumina…
環境 エラー内容 調査 環境 Docker の php:7.4.16-apache を利用 Laravel を利用 エラー内容 [2021-08-24 10:43:16] production.ERROR: could not find driver at /app/laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671) 調査 …
結論 どういう時に使うの? Carbon と Chronos の例 Chronos と Laravel 結論 PHP の ReflectionClass を使えば可能です。 getFileName()); どういう時に使うの? PHP には autoload という機能があり、皆さん普通はこの autoload を利用しているかと思いま…
値オブジェクトを使わず、プリミティブな型を使うとどうなるか 各IDの型が分かりづらい delete メソッドの引数の型チェックが弱い そこで値オブジェクト さいごに 値オブジェクトを使わず、プリミティブな型を使うとどうなるか ブログシステムを考えましょう…
これまで僕が業務で触ったことあるフレームワーク(と言語)は Laravel (PHP) Slim Framework (PHP) Django (Python) Gin (Go言語) で、どれも1年以上は保守しています。 長年業務で使ってきたこれらのフレームワークについて、実際使ってみてどうだったのか…