欲張りスライムの備忘録

ソフトウェア関連の話題について記載する予定。「明日から本気出す」がモットー。

PHPCON2016に参加してまいりました

イー加減Yii(イー)じゃなくて流行りのLaravelとかFuelPHPを業務で扱いたい…そんな欲張りスライムです。

PHPCON2016に参加してきましたので、簡単ではありますが備忘録として上げておきます。個人的には和田さんのセッションが一番聴き応えがありました。Enumで値を制限する予防的プログラミングの手法など積極的に取り入れていきたいです。ひとまず午前のセッションの部分だけ。他の箇所に関してはこれから更新予定です。

 

PHPの今とこれから2016

現在使用しているPHPのバージョンは、会場ではPHP5.6が多数派のようでした。

PHP 7.0 ⇒ PHP 7.1の変更のポイントは次の通り(下記4点以外にも変更点はありますが、個人的に重要と思った部分だけここでは記載)。

  • 複数例外のキャッチのシンプル記述可(複数の例外のキャッチについてcatch文を複数使わなくてすむ)
  • リスト構文の改善(添字が0からでなくても、リスト形式の代入が可能になる;list記述不要になる)
  • クラス定数のアクセサ指定可(従来クラス定数は全てpublicでアクセス制限機能がなかったが、public以外のアクセス範囲も指定可能になる):
  • Nullable型指定可(?を付けることでヌルを引数/戻り値の型として指定可能になる)

 

Composerプラグインを作ってみよう

@Hirakuさんの講演。

講演内容をざっと会話方式でまとめてみました。

Composerプラグインの作り方は、以下のURLを参考にするとよいとのことです。

https://getcomposer.org/doc/articles/plugins.md

 

A:今のComposerはあまり速くないし、たとえばGo言語とかPHP以外の言語でComposerを実装した方がもっと性能よくなるんじゃないの?

B:いやぁ、あれはPHPで書いてあるからこそ、PHPで拡張できるんだよ~。

A:なるほど、「PHPで拡張できること」がComposerの強みというわけか。Composerに拡張を行うことで次のことが可能になるもんね。

  1. (イベントフック型)composerコマンドの前後で任意の処理を実行
  2. (サブコマンド型)サブコマンドをComposerに生やす

C:初心者が通ります。Composer拡張とかやってみたいんだけど、まずどうすればいいの?

A:まずcomposer.jsonのscriptsというプロパティを作って試してみるといいよ。任意のスクリプトを実行したり、イベントフックで自動実行も手動実行もできる。簡単だし。

B:ただscriptsだけだと、他のcomposerプロジェクトで使い回したいときに不便になる。可能であればプラグイン化しておくと、requireするだけで使い回せるよ~。

C:なるへそ。まずscriptsをいじればいいんだな。ところでComposerとは何ぞや?

A:パッケージを作るためのフレームワークだよ。プロジェクトの全てを掌握する存在でもある。パッケージの役割・必要としているライブラリからプログラムの起動方法まで把握している、まさにプロジェクトの神みたいな存在さ。

C:パッケージって?

B:Composerは何でも「パッケージ」っていう単位で扱うんだよ~。簡単に言えばComposerが定義するPHPプログラムの単位のことさ~。

C:なるほど。分からん。