猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

PHP の composer で remove する時にパッケージの依存関係も含めて remove したい

PHP

状況 composer remove --update-with-dependencies でもだめだった 一番確実なのは composer.lock を作り直すことだが... ただ、バージョンが固定されておらず composer.lock を簡単に消せないことも ではどうすればいいのか composer.lock を読む どうやっ…

PHPのSplPriorityQueueで複雑な実装をしようとするとたまにおかしい時がある?

PHP

SplPriorityQueue を継承したらちょっと複雑なPriorityQueueが実装したりできるのですが、なんかたまにうまく動かないことがあります。 正常に動く例: 長方形を面積が大きい順に並べる SplPriorityQueue を継承して、 insertRectangle というメソッドで面積…

PHPのPriorityQueueの実装についてとSplPriorityQueueの使い方

PHP

JavaやC++だとPriorityQueueが標準ライブラリで用意されているイメージがありますが、PHPはあまりそういったイメージがありません。しかし、PHPでもちゃんとPriorityQueueが標準で用意されています。 SplPriorityQueue の使い方 PHPのPriorityQueueの実装がS…

MacでHomebrewを使っていて、コマンドラインから叩くphpのバージョンがなんかおかしくなった場合の対処

概要 ある日 composer install するとこんな警告が出た phpunit/phpunit 5.7.21 requires php ^5.6 || ^7.0 -> your PHP version (5.5.20) does not satisfy that requirement. phpunit 5.7.21 を利用するには php5.6 以上または php7.0 以上が必要だが、あ…

libprotoc 3.0.0 から libprotoc 3.3.2 にアップデートしたらコンパイル時の namespace 指定が効かなくなって GPBMetadata が生成されるようになった

状況 PHPで書かれたプロジェクトで protocol buffer を利用していた。最初は libprotoc 3.0.0 を使用していたが、 これを 3.3.2 にバージョンアップした瞬間、 コンパイルオプションの namespace が効かなくなり、3.0.0 とは異なる成果物が生成されるように…