ついに出た! PHP8.0と.NET5

皆様こんにちは。 CUBEのシステム担当(?)の杉本です。
先の11月は「PHP8.0」、「.NET5」等、バックエンド側のシステム屋としては、非常に楽しい月でした。

私だけ盛り上がるのもアレなのでブログで発散しようと思います。

あと、昨日(2020/12/22)で21歳になりました。 年を重ねると誕生日がどうでも良くなると聞いていたのですが、それとなくその気持ちが分かった気がします。

PHP8.0 について

CUBEはWeb制作をメイン事業とする会社ですので、まずはPHPから。
そもそも、PHPをゴリゴリ書くのは私位なものですので、社内では大したニュースにはならなかったのが少し悲しいところです。

詳しい変更内容は、下記ページをご覧いただくとして、Web屋が知っておきたい変更を幾つか取り上げます。
ソース: https://www.php.net/releases/8.0/ja.php

そろそろオレオレフレームワークをアップデートしなくては….

 

名前付き引数

https://www.php.net/releases/8.0/en.php#attributes

CSharperな私、はこれが一番うれしいものだった。

例えばWordPressをHeadlesなCMSとして利用する場合に特に有用だろう。
get_posts()とかの関数だと、パラメタを配列で渡すのだが、如何せんパラメタの種類が多すぎる。
しかも複雑な条件だと、読みづらいうえにバグに気づきづらい。
そう、文字列をキーとする値の集合なので、Intelisenseが効かないのだ。

そんなもんだから結局のところwpdbを拡張して、ゴリゴリSQL書いたりするがそれのせいで、技術的負債が残るのは良くも悪くもあるあるだろう。

 

Nullsafe 演算子

https://www.php.net/releases/8.0/en.php#nullsafe-operator

これも非常にありがたい。
これまでのPHPでは、ソースのかなりの割合がnullチェックの為に存在する場合があった。
(特に大規模なシステム等の場合)

if文の嵐が少なくなるはずなので、コードの可読性が向上するはずだ。
ちょっと怖いのが、変数の初期化とか、どのタイミング迄Nullでよいのか等、よく考えて使わないと恐らく爆死する。

 

「@ 演算子は、致命的なエラーを隠さなくなりました。 」

要は「@」演算子でエラーを無視できるが、PHP的にクリティカルの場合はエラーを吐くようになのだ。

なんかこれ、いい加減なつくりだと速攻エラー吐きそうな感じである。
そもそも、これで困るレベルの品質の場合は元から死にかけといったところだろうが。

 

「str_contains()」

ありそうでなかった、地味にうれしい機能だ。

今までstrposとかで判定していたものが、すっきり論理値で扱えるようになるのだ!
コードがより分かり易くなりのでイケてる変更だと思う。

 

 

.NET5

クロスプラットフォームで有名な.NET Coreの新バージョンだ。
ちなみに.NET Frameworkの系譜ではないので、そこのところは要注意だ。

原文は↓からどうぞ
URL: https://docs.microsoft.com/ja-jp/dotnet/core/dotnet-five

本当はXamarinとの統合も予定されていたようだが、それとの統合は以降に持ち越しのようだ。
そもそも、Xamarin自体あまり詳しくないが….

といっても業務でC#触るのは私だけなので、これもやっぱり私が勝手に盛り上がってるだけだ。

なんかガベージコレクタが早くなったとかなんとからしいので、
次の.NET6でLTSサポートとなったら本格移行の時期だろう。

そもそも通常の制作業務ではC#を扱える必要は全くないので、どこまでキャッチアップするかも迷いどころだ。

 

 

最後に

今回は書きたい事書きなぐったので、乱文にはご容赦いただきたく。

おわり