未経験からweb系?のエンジニアとなってベンチャー企業で働いている駆け出しプログラマのブログ。日々得られたIT関連の技術的な知見を共有します
2022年3月
<php>get_object_varsを共通のスーパークラスのメソッドに実装するときの注意
概要 問題 対策 概要 PHP8においてインスタンスの情報を取得するメソッドにget_object_varsがあり、これを使えば引数に渡したインスタンスのもつアクセス可能なプロパティについてArray型で出力してくれる。 これはDTOのようなプロパティ主体で構成されるクラスなんかの共通処理として実装しておけば色々楽になりそうだったので、抽象クラスにget_object_vars($this)を戻り値として返すようなpublicなメソッドを定義した。(オーバライドせずそのまま使用する用途) 問題 継承先のクラスではprivateのプロパティは「アクセス不能」とみなされ取得できない。 誤解いただき…
Mysqlでレコード挿入時に作成日を、更新時に更新日を自動で行えるようにする
概要 結論 その他 概要 DBの各テーブルには大抵の場合、更新日と作成日、また作成者を登録したくなる。 これを全テーブルで、更には各updateとinsertのSQL操作で毎回書くのは冗長すぎるのでなんとか自動でできる手段を探していたが、 テーブル作成段階でこれを可能にする方法があったのでその備忘録。 結論 CREATE TABLE文で以下のようにする。 CREATE TABLE Users ( //他のカラム定義 created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated DATETIME NOT NULL DEFAULT CUR…
<PHP>サブディレクトリのnamespaceの名前解決ができない
概要 原因 todo 概要 以前にcomposerを導入したとき、composer.jsonで定義したauto_loaderがなぜか機能せず、一旦調査保留にしていたのだが、その原因がざっくりわかったのでとりあえずのメモ 原因 自分でプロジェクトのソース内で宣言していたspl_autoload_registerがどうも悪さをしてたようで、当該宣言を削除しcomposer側で生成されるauto_loaderを読み込むようにしたところ、サブディレクトリの名前空間も無事読み込めるようになった。 todo spl_autoload_registerとかcomposerのautoload周りの挙動を理解す…
はじめに requireとinclude namespaceの意義 どちらを使うべきか その他 参考 はじめに Pythonにはなく、ほかの言語ではある程度一般的な概念としてnamespaceがあるが、 requireやincludeといった宣言との使い分けがよくわからなかったのでそのメモ requireとinclude ざっくりいうと読み込む対象が読み込めなかった場合に... 警告のみで継続->include 中断->requrie という違いなようだ。 またrequireに関してはrequire_onceもあり、こちらは既に読み込み済みの場合は多重で読み込むことで発生するバグを防ぐことが可…
2022年3月
「ブログリーダー」を活用して、damakoさんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。