VSCode + Docker + XdebugでPHPのデバッグ環境を構築
概要
前回、Docker(nginx + PHP-FPM)を使ってPHPの実行環境を構築しました。
基本構文を覚えたばかりなのでコード毎に動作を追いたいと思った次第です。
Docker(nginx + PHP-FPM + Xdebug)+ VisualStudio Codeでデバッグが行える環境を構築します。
前回作成したDocker(nginx + PHP-FPM)のPHP実行環境にXdebugを追加する形で構築します。
前回の環境構築記事は以下です。
目次
参考サイト様
- Installation - Xdebug: Documentation
- php - Docker Hub
- [PHP]pecl,phpize,extensionという単語を見て頭痛がするあなたへの処方箋 · DQNEO起業日記
- Remote Debugging - Xdebug: Documentation
- [PHP] Xdebug のリモートデバッグ、理解していますか? - Qiita
- IDE debugging with Docker, nginx, PHP7-FPM and Xdebug - Stack Overflow
- Networking features in Docker Desktop for Mac | Docker Documentation
- felixfbecker/vscode-php-debug: PHP Debug Adapter for Visual Studio Code 🐞⛔
- php - PHP7 CLI attempts to load xdebug twice - "Cannot load Xdebug - it was already loaded" - Stack Overflow
.gitignore_globalの作成(.gitignoreのテンプレートサイト紹介)
概要
Git管理の必要ないファイルやディレクトリが、作成される場合があります。
Macであれば.DS_Store
であったり、WindowsであればThumbs.db
等です。
また、VSCodeを使っていると.vscode
などのディレクトリもGitで管理する必要がないため除外したい。
VisualStudio使いなのでプロジェクトを作成する際に自動で作成される.gitignore
をいつも使っていたんですが、
C#以外にも手を出した始めたので都度作成するのが面倒だなと思っていました。
ごろごろしながらネットサーフィンしていると.gitignore_global
なるものを見つけたのでメモしておきます。
都度作成する必要があることには変わりないけど最低限のものは最初から除外されるので少しは手間が減るのかなと思った次第です。
また、ブックマークに埋もれている.gitignore
のテンプレートサイトも同時に紹介しておきます。
目次
- 概要
- 目次
- 参考サイト様
- .gitignoreテンプレートサイトの紹介
- .gitignore_globalって何?
- .gitignore_globalの作成と適用
- .gitignore_globalの作成
- .gitignore_globalの適用
- 雑感
参考サイト様
- gitignore に書くべきでないものは gitignore_global へ - Qiita
- グローバルで.gitignoreを適応する - Qiita
- github/gitignore: A collection of useful .gitignore templates
- gitignore.io - Create Useful .gitignore Files For Your Project
Docker Composeを使ってnginxとPHP-FPMでPHPの実行環境を構築する
概要
PHPを触るにあたりローカルでPHPを使って開発できる環境が欲しかったのでDocker Composeを使ってnginx + PHP-FPMで実行環境を構築しました。
PHPやPHP-FPM、Dockerの知識不足で構築に結構時間がかかってしまったので忘れないよう記事にします。
PHPのローカル開発環境としてMAMPやXAMPPなどがありますがワンクリックインストールで終わってしまっては面白くないのでDocker Composeを使用しました。
※Macのストレージを汚したくないと言う思惑もありました。
PHPに関してはズブの素人でProgateのPHPの学習コース1を先日、2時間ほどかけて基本構文を覚えたばかりです。
目次
参考サイト様
- 初心者用PHP入門
- nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する - Qiita
- ApacheとNginxについて比較 - Qiita
- Compose file versions and upgrading | Docker Documentation
- Compose file version 3 reference | Docker Documentation
- nginx docker container: 502 bad gateway response - Stack Overflow
- Networking in Compose #links | Docker Documentation
- docker-compose depends_onとlinksの違い - Qiita
【実験】C# HttpClientのソケット大量消費の回避
概要
ちょっとしたものを作っている過程でHttpClient
を使用した場合のソケット数について気になることがあったので
netstat
コマンドで計測しながら下記の2パターン実験しました。
公式ドキュメントに記載のあるSocketException
エラーを回避する方法ですが自分で確かめたかった次第です。
HttpClient
をusing
で囲んで使用するパターン(Badパターン)HttpClient
を静的メンバとして宣言しインスタンス使い回すパターン(Goodパターン)
正味、コード的には公式ドキュメントのまんまですがnetstat
での計測結果付きです。
HttpClientFactory
については触れないのであしからず。
あと検証環境はMacOSです。WindowsとMacOSで中でラップしてるクラスが違うっぽいので動作の違いに注意してください。
目次
- 概要
- 目次
- 参考サイト様
- 環境
- 成果物
- HttpClientを使用したソケット消費数の計測
- HttpClientをusingで囲むパターン(Bad)
- 結果
- HttpClientを静的メンバとして使い回すパターン(Good)
- 結果
- 結果比較
- HttpClientをusingで囲むパターン(Bad)
- 雑感
参考サイト様
- HttpClient Class (System.Net.Http) #注釈 | Microsoft Docs
- Improper Instantiation antipattern - Performance antipatterns for cloud apps | Microsoft Docs
- You're using HttpClient wrong and it is destabilizing your software | ASP.NET Monsters
- .NET(Framework)のHttpClientの取り扱いには要注意という話 - Qiita
- ASCII.jp:TCPのコネクションとはなんですか? (2/2)|TCP/IPまるわかり
- 知ったかぶりをしていたソケット通信の基礎を改めて学んでみる - Qiita
AWS CodeBuildのビルド結果をLambdaを使ってLINEへ通知する
概要
タイトルの通りAWS CodeBuildのビルドステータスをCloudWatchと使って監視し
イベントを検知したらLambdaを起動し自身のLINEへビルド結果を通知します。
トークに返信して自動で再ビルド実行とかは組み込んでません。純粋にビルド結果の通知です。
世間じゃSlackに通知とかなんでしょうがこちとらぼっちの個人開発なんでSlackなんぞ使ってません。
LINEに通知が来てくれたほうが気付きやすいんです。
こんな感じになります。
目次
- 概要
- 目次
- 参考サイト様
- 成果物
- 環境構成
- 作業手順と注意事項
- LINE Developersに登録&チャネル作成
- アクセストークン(ロングターム)の発行
- AWS Lambda関数の作成
- AWS CloudWatchのイベント設定
- Lambda関数のテスト
- 雑感
参考サイト様
- line-bot-sdk-nodejs | line-bot-sdk-nodejs
- LambdaではじめてのLINE Botを作る | DevelopersIO
- Messaging API | LINE Developers