はじめに JSON 形式の Web API とは Laravel で JSON を返す基本的な実装 JsonSerializable インタフェースを使う JsonSerializable を使うと便利な点 想定外の例外が発生した場合の対応 Laravel デフォルトのエラー画面 Laravel のレスポンス形式は Accept …
はじめに PHP 8.0 / 8.1 で個人的にめっちゃ使いたい機能3選 名前付き引数(PHP 8.0) コンストラクタのプロモーション(コンストラクタ引数のプロパティ化) Readonly Property おわりに 余談: ドメイン駆動設計について はじめに 遅れました。この記事は P…
はじめに この記事は Go Advent Calendar 1日目の記事です。 qiita.com go でサクッとコマンドラインが作りたい 最近、よく行う処理を PHP でスクリプト化しています。 例えば、以下のような処理です。 CSVを突き合わせて差分を出す 動作確認のために開発環…
達人に学ぶDB設計 徹底指南書 はじめに: DB設計の重要性 テーブルの正規化 第一正規形 正規形と「更新時異常」 更新時異常とは 挿入時異常 削除時異常 修正時異常 関数従属性 第二正規形 挿入時異常について 削除時異常について 修正時異常 情報無損失分解 …
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) 調査 …
Scala + Play Framework のプロジェクトで、 sbt のバージョンを 1.3.9 から 1.5.5 にしたところ、以下のエラーが発生しました。 #9 87.82 [error] java.lang.NoSuchMethodError: scala.tools.nsc.Settings.bootclasspath()Lscala/tools/nsc/settings/AbsSet…
執筆時の sbt のバージョンが 1.5.5 だったので、 LGTMoon (https://lgtmoon.herokuapp.com/)で使っている sbt のバージョンを 1.3.9 から 1.5.5 に上げる作業を行いました。 sbt を 1.3.9 から、1.4.9 (1.4系の最新)に上げた際に以下のエラーが発生しま…
結論 どういう時に使うの? Carbon と Chronos の例 Chronos と Laravel 結論 PHP の ReflectionClass を使えば可能です。 getFileName()); どういう時に使うの? PHP には autoload という機能があり、皆さん普通はこの autoload を利用しているかと思いま…
作戦1: 画像のURLを推測する 作戦2: ページをクロールする 結果 ショップディズニーの、ネット通販サイトが1周年記念でキャンペーンをしていました。 その中で、「ページのどこかにクーポンが隠れている」というのがありました。 ショップディズニーのサイト…
はじめに ローリングアップデートとは 実際にやってみる アップデートの完了 ロールバック はじめに 前回、アプリケーションのスケールアップ/ダウンをやりましたが、その知識を使って、アプリケーションの「ローリングアップデート」をやります。 kubernete…
はじめに スケーリング 実際にスケールアップさせてみる ロードバランシングの確認 スケールダウン はじめに 前回、 Hello Minikube チュートリアルをやりました。 www.utakata.work 今回はその次のチュートリアルである「Kubernetes の基本を学ぶ」をやりま…
Hello Minikube とは Minikube とは Mac に Minikube と kubectl をインストール Minikube の起動 Kubernetes のノードと kubectl Pod と Deployment Deployment の作成 Service を作成してコンテナにアクセス アドオンについて Kubernetes クラスタ上のリソ…
Twitter の v2 API を oauth 1.0a 認証で叩こうと思ったら、以下のエラーが返ってきました。 {"client_id":"21075140","detail":"When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer Ap…
はじめに 前提知識 Docker 上で Python のコマンドを実行してみる Python の Docker イメージを探す Docker イメージのダウンロードと起動 Python を書いて Docker 上で動かす Python のプログラムを書く Dockerfile を書く Docker イメージのビルド Docker …
値オブジェクトを使わず、プリミティブな型を使うとどうなるか 各IDの型が分かりづらい delete メソッドの引数の型チェックが弱い そこで値オブジェクト さいごに 値オブジェクトを使わず、プリミティブな型を使うとどうなるか ブログシステムを考えましょう…
書籍『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本』 なぜ今までのDDD本ばわかりづらかったのか ボトムアップになるとどうなるのか ここ数年で一番おすすめの本 書籍『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計…
これまで僕が業務で触ったことあるフレームワーク(と言語)は Laravel (PHP) Slim Framework (PHP) Django (Python) Gin (Go言語) で、どれも1年以上は保守しています。 長年業務で使ってきたこれらのフレームワークについて、実際使ってみてどうだったのか…
例えば、 OpenAPI の定義がこうなっていたとします。レスポンスのプロパティとして、 name と size があります。 responses: 200: description: 正常系 content: application/json: schema: type: object properties: name: type: string size: type: intege…
phpQuery vs php-html-parser この記事で扱う PHP のバージョン php-html-parser をインストール 実際に使ってみる まとめ phpQuery vs php-html-parser 以前、以下の記事を書きました。この記事では phpQuery というライブラリを使いましたが、phpQuery は3…
composer require と composer remove 結論: composer.lock を作り直すしかない composer.lock を作り直したくない 依存をきれいに消すコマンドは無い composer update コマンドをうまく使う composer update する場合の注意点 結論 composer require と com…
AWS S3 から他サービスへのオブジェクトストレージにデータを移行する 参考ページ rclone のインストール rclone の設定 ファイルのコピー AWS S3 から他サービスへのオブジェクトストレージにデータを移行する 今回、私は AWS S3 を脱却して、料金の安い Wa…
ツールの説明 使用例 スペシャルサンクス ツールの説明 どうぶつの森で、どうぶつがしゃべる時の音「どうぶつ語」の音声が生成できるツールを作りました。 ↓こちらです。 どうぶつ語音声ジェネレーター 使い方や注意点は、 https://animal-crossing.utakata.…
news.mynavi.jp 脆弱性の詳細ですが、理解しようとするとかなり時間が掛かりそうなので省略します。 composer のバージョンアップは難しくなく、アプリケーションへの影響も小さいので、サクッとアップデートしましょう。 $ composer self-update Updating t…
ほぼ AWS S3 と同じです。 リージョンは ap-northeast-1 です。リージョンが違う場合は設定方法も変わります。 設定方法 設定予定のドメイン名でバケットを作成します DNS に CNAME で ドメイン名 → s3.ap-northeast-1.wasabisys.com https://ドメイン名/フ…
オブジェクトストレージを使う目的 比較したオブジェクトストレージ Wasabi の概要 ConoHa オブジェクトストレージの概要 DigitalOcean Spaces 比較ポイント ざっくり比較 各サービスのメリット・デメリット AWS S3 Wasabi ConoHa オブジェクトストレージ Di…
オブジェクトストレージ Wasabi は、アメリカの Wasabi Technologies, Inc. のサービスで、日本では NTT PC 社経由でサービス提供されている感じになります。 使用感はだいぶ AWS S3 に似ています。NTT PC が提供している Web ARENA と連携してアカウントを…
前回の復習 go.mod とは go mod を使って gin をインストール Dockerfile の修正 gin を起動するコードを書く 前回の復習 前回は、 Docker 上で Go を動かすまでやりました。まだ読んでないひとは読んでください。 www.utakata.work go.mod とは go.mod は、…
何をやるか Docker 開発環境の作成 main.go 参考 何をやるか これから何回かに分けて、 Docker + Go + Gin(Webフレームワーク)の開発環境を整えていきます。 ディレクトリ構成やコマンドの書き方、変更検知してコンパイルなど、開発に必要な最低限の環境を…
はじめに ALLOWED_HOSTS との兼ね合い 対策 ALLOWED_HOSTS の意味 結局どうすればいいのか 事例を調査する 結論 はじめに 一般的に、 AWS で Web アプリケーションを動かすときは、 Application Load Balancer *1 と EC2 を利用します。 Application Load Ba…