のーずいだんぷ

主に自分用メモですが、もしかしたら誰かの役に立つかもしれません

<php>get_object_varsを共通のスーパークラスのメソッドに実装するときの注意

PHP

概要 問題 対策 概要 PHP8においてインスタンスの情報を取得するメソッドにget_object_varsがあり、これを使えば引数に渡したインスタンスのもつアクセス可能なプロパティについてArray型で出力してくれる。 これはDTOのようなプロパティ主体で構成されるク…

Mysqlでレコード挿入時に作成日を、更新時に更新日を自動で行えるようにする

概要 結論 その他 概要 DBの各テーブルには大抵の場合、更新日と作成日、また作成者を登録したくなる。 これを全テーブルで、更には各updateとinsertのSQL操作で毎回書くのは冗長すぎるのでなんとか自動でできる手段を探していたが、 テーブル作成段階でこれ…

<PHP>サブディレクトリのnamespaceの名前解決ができない

PHP

概要 原因 todo 概要 以前にcomposerを導入したとき、composer.jsonで定義したauto_loaderがなぜか機能せず、一旦調査保留にしていたのだが、その原因がざっくりわかったのでとりあえずのメモ 原因 自分でプロジェクトのソース内で宣言していたspl_autoload_…

PHPのnamespace(名前空間)について

PHP

はじめに requireとinclude namespaceの意義 どちらを使うべきか その他 参考 はじめに Pythonにはなく、ほかの言語ではある程度一般的な概念としてnamespaceがあるが、 requireやincludeといった宣言との使い分けがよくわからなかったのでそのメモ require…

PHPのインタプリタを手っ取り早く利用する方法(wsl2(windows)&docker&tmux)

概要 構築方法 雑感 参考 概要 プログラミング言語のインタプリタで簡単に組み込み関数の挙動を見てみたかったりする場合、Pythonのようなスクリプト言語だと組み込みでインタプリタがすぐに使用可能であるが、PHPだとインストールの方法によってはインタプ…

Chrome Remote Desktopで一部キーが反応しない、もしくは謎のショートカットと関連付けられる現象

概要 原因と対策 概要 題の通り、Chrome Remote Desktop(windowsのRDPのようにリモートで社外から社内のPCにアクセスできるツール)において、キーボードの一部キーが反応しないという現象が発生した。 正確には反応するキーもあり、正しく入力できる場合もあ…

シェルスクリプトでファイルに行を挿入したい

概要 結論 ハマりどころ 参考 概要 CLIでログデータを簡易的に処理する際、headerがなかったので該当のログデータにヘッダー行を挿入したかった。 結論 以下で可能。 複数ファイルがある場合のケースを記載。 #!/bin/bash IFS=$'\n' header=`cat ./header.tx…

データベース設計(エンティティ抽出とビジネス的正規化)

はじめに 基本のき 知っておくべきこと 正規化 プライマリキーの話 業務で使用するコードはプライマリキーにしてはいけない コード=プライマリキーとすることの弊害 その他の問題 データモデルが複雑になることに恐れるな データのライフサイクルとその後の…

xampp環境で直接開発しているときのエラー出力確認方法

開発環境 確認方法 その他 参考 開発環境 大雑把に以下のような構成で開発している。 VScode(remote-container)---- |(デプロイは内部でのファイル移動) WSL2(ubuntu)------------docker container(Apache tomcat/PHP) 端的に言えば、webサーバ上で直で開発…

wsl2を使う前にやっておきたいこと(ディストロのバックアップ)

はじめに wsl2はディストロ(≒ディストリビューション)をdocker imageのように使えない 1. 任意のディストロをインストール 2. ディストロをエクスポートする 3. ディストロをインポート(複製)する はじめに 転職してから開発環境がMac→Windowsと変更になり、…

awkでオプション'OFS'(output field separater)が適用されない

概要 結論 概要 タイトルの通り、以下のようにpsコマンドの情報を整形しようとしたとき、想定した内容にならなかった。 $ ps aux | grep httpd | grep -v grep | awk -F ' ' -v 'OFS=#' '{print $1 $2}' apache5768 apache5769 apache5776 apache5777 apache…

wsl2にsshで接続する

概要 wsl2サーバーへログイン wsl2サーバーでのsshサーバーの導入 sshd_configの編集 ホスト側公開鍵の仕込み ssh_config作成 その他 概要 ホストOS |(ssh 接続) ゲストOS(wsl2,ubuntu20.04) 通常はホストOS側でwsl2がインストール完了していれば、wsl -d Ub…

tomcatのheapdump取得&apacheやtomcatといったユーザにログインできない問題

やりたかったこと エラーメッセージの意味と原因 解決方法 やりたかったこと tomcat上で動いているwebアプリケーションの不具合調査のためjcmdコマンドでJVMの情報取得を試みたときに以下のようなエラーがでた。 $ jcmd 27318 GC.heap_dump /var/log/heapdum…

久々の、あとこれからどう生きるか

2020年~2021年は色々な方にご迷惑をおかけしました。 現在は 苦しい時期を経験して得たものは 2022年から、どういう風に生きたいか 2020年~2021年は色々な方にご迷惑をおかけしました。 久々の投稿になりました。 一応見出しの期間にもわずかに投稿してい…

Google map api をVue.js(Nuxt.js)のコンポーネントで利用する方法

やりたいこと 結論 参考 やりたいこと 一般的にGoogle map api をwebアプリケーションで使おうとしたとき、例えば以下のような感じで利用する。 html <html> <head> <title>Simple Map</title> <style> #map { height: 100%; width: 100%; } </style> </head></html>