PHP

PHPerKaigi 2022に参加していろいろわからないことがあったので調べたりして

さて本題、見たセッションの簡単な感想と、わからなくて調べたこと Datadog APM で始める Laravel アプリケーションのパフォーマンスチューニング 予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント PHPとGraphQL BASE大規模リアーキテクチャリン…

PHPカンファレンス2021のMySQL関係のセッション2つがめちゃくちゃよかった

2021-10-09追記。「MySQLとインデックスとPHPer」のスライドのリンク間違っていました。修正済みです。 今回はいろいろ忙しいし書くつもりなかったけど、めちゃくちゃいいセッションが2つあったので、その感想だけ手短に書く。 PHPer が知るべき MySQL クエ…

PHPカンファレンス 2020を見たので簡単な感想を

コロナなのでオンライン。オンラインのカンファレンス見るのは初。今年そもそもカンファレンス初。あと~関西じゃないPHPカンファレンスも初だな。 ほんと簡単な感想です。アーカイブぜんぶ残るみたいなので興味あるセッションはアーカイブ見ましょう。 スラ…

Composerの高速化を設定した状態で2系に上げるとトラブる

PHP

https://github.com/hirak/prestissimo プラグインを入れたり、https://packagist.jp/ ミラーを使うように設定した状態で、Composerを2系にアップデートすると、composer require時等に以下のような警告・エラーが出る。 The "hirak/prestissimo" plugin was…

連想配列への代入は一括でやった方がいいと思う

PHP

2020-03-26追記 もっと単純に、一つの操作を複数に分けるな、って話でよかったね。 'val1', 'key2' => 'val2', 'key3' => 'val3', ]; 上記のような場合に、$assoc1の方法より$assoc2の方法がいいと思う。まあ昔からずっと思っていたのだが最近$assoc1の方法…

PHPで例外を出力するときにわざわざgetMessage()を使う必要はない

PHP

たまに見かけるので。 こんな感じにすれば__toString()が自動的に呼ばれる。エラーメッセージとスタックトレースの両方がついたいい感じの出力になる。

PHP 7.3.0をCentOS 7でビルドする

PHP

phpenv経由でphp-buildで。すると、 configure: error: Please reinstall the libzip distribution と言われるのでsudo yum install libzip. だが入れても言ってくるので、libzip-develも入れてみる。すると今度は、 configure: error: system libzip must b…

Composerのディレクトリが~/.config/composer以下になる場合

CentOS 7環境で、新規案件のためにLaravel入れたのだがlaravelコマンドが入ってない。~/.composer/vendor/binにパスは通ってるのになあ、とよく見てみると、~/.composer/vendor/bin自体がなかった。 もうちょっと調べてみると、~/.config/composerというのが…

PHPで変数のダンプはどの関数を使うのがよさそうか

PHP

メジャーなのだけでもvar_dump(), var_export(), print_r()などありどれ使えばよいか迷ったので、簡単にまとめてみた。 主にデバッグとログに吐くのが目的なんで、そういう視点で。オブジェクトもきっちりダンプしたいとかはないが、PHP上で扱える形式で吐い…

EloquentでのNULLABLEな日付の扱いでoptional()ヘルパ関数が便利

アクセサの値を普通に表示するだけなら、?:演算子だけでいい。PHPはnullをechoしても特に問題ないので。 created_at ?: 'default'; ただ、フォーマットしたい場合はちょっとやっかい。以下はcreated_atがNULLの場合、nullのメソッドを呼び出してエラーになる…

Eloquentのモデルのイベントをリスニングする

ドキュメントにも一応書いてあるけどなんか半端なので。 https://laravel.com/docs/5.6/eloquent#events https://readouble.com/laravel/5.5/ja/eloquent.html#events モデルの$dispatchesEventsに、['イベント名' => イベントクラス::class, ...]の形の配列…

composer updateでよくわからないエラーメッセージが出たが、指定したブランチがないだけだった

PHP

あるアプリケーションが依存している Git リポジトリがあったのだが、master 以外のブランチを参照することになった。ので、composer.json を更新して composer update したら、The requested package <VENDOR>/<REPO> <BRANCH> exists as <VENDOR>/<REPO>[dev-master] but these are rejected by</repo></vendor></branch></repo></vendor>…

PHPカンファレンス関西2016に行ってきた 前編: トーク感想

PHP

先週土曜日、PHPカンファレンス関西2016に行ってきた。PHPカンファレンスは初めて。と いうか、カンファレンスとか勉強会とかに行くこと自体初めて。 前々から興味はあったが、なかなか機会がなかった。今回もだいぶ前から行こうと決めて なかったら行けてな…

Composer の autoloader のハッシュ値はなに?

PHP

vendor/autoload.php にある、 ComposerAutoloaderInitXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX の XXX... のことね。手抜きでサーバ側に Composer 入れず autoloader だけ入れたいなと思ったんだけど、なにか環境ベースの値だったらいやなので調べた。 get('autol…

PHPではグローバル変数は閉じ込めることができる。そして、関連して引っかかったこと

PHP

前提として、PHPでは変数には2つのスコープしかない。グローバルと、各関数(メソッド)ごとのものだ。ブロックスコープがないのが不便とはいえ、グローバル変数を使わなければ割と平和だ。しかしレガシーコードを扱う場合など、仕方なくグローバル変数を使わ…