PHPerKaigi@ココネリに参加してきました。
練馬初上陸でした。池袋から一駅でアクセス良きでした。
\公式サイトはこちら/
https://phperkaigi.jp/2018/
3/9,10と開催されてたのですが、3/10のみ参加しました。
お昼ご飯マグロどーん!他にもサンドイッチ、焼肉弁当もありました。
エンディングと懇親会のビールの豪華さが、、、もう最高!
スポンサー様にとっても感謝です。
写真のセンスがないのは、ほっといてくださいw
すべてのセッションが印象的だったんですが、
その中でも2つのセッション内容を自分なりに落とし込んでみました。(自己満ですみません。)
・SOLIDの原則って、どんなふうに使うの?
・BEAR.Sunday
#SOLIDの原則って、どんなふうに使うの?
SOLIDの原則の一つであるオープン・クローズドの原則にフォーカスを当てたお話でした。
この原則については、自身でも過去にかいてます、実は。
このあたり
しかし、これって実践できてる気はしていません。
新人くんの気持ちわかる〜って思ったり、こうやったほうがいいんだろなとか考えさせられたセッションでした。
close →修正を行わない
open →機能を拡張できる
この2つを同時に満たすこと=OCP準拠 !
interface使いこなさなきゃなと思いました。
フレームワークを参考にしてみると、いいとのことで、
もっとフレームワークみなきゃなと痛感しました。
「OCP違反ですよ。」て言いたくなりました。
#BEAR.Sunday
敏腕元上司(あまり人を褒めない)が尊敬していた郡山さんのセッション。
本物の郡山さんに感動しました。
フレームワークBEAR.Sundayで使われてるDI・AOP・RESTのお話でした。
ともわれ、使ってみなきゃということで、
クイックスタートしてみました。次回はチュートリアルします!
(リンク:https://bearsunday.github.io/manuals/1.0/ja/quick-start.html)
まずは、composerでbear/skeletonをいれる。
composer create-project -n bear/skeleton MyVendor.MyProject
composer create-project [option] vendor/project target-directory
※ -n (–no-interaction) :対話的な質問の問い合わせはしないよ
作成されたMyVendor.MyProjectに入って、
cd MyVendor.MyProject
src/Resource/Page/Kin29.phpをつくって、
<?php namespace MyVendor\Myproject\Resource\Page; use BEAR\Resource\ResourceObject; class Kin29 extends ResourceObject { public function onGet( string $word = 'morimori!!!' ) : ResourceObject { $this->body = [ 'getting' => 'kin29 ' . $word ]; return $this; } }
GETパラメータなしでリクエスト
$ php bootstrap/web.php get /kin29 200 OK content-type: application/hal+json { "getting": "kin29 morimori!!!", "_links": { "self": { "href": "/kin29" } } }
GETパラメータ「word=man」でリクエスト
$ php bootstrap/web.php get /kin29?word=man 200 OK content-type: application/hal+json { "getting": "kin29 man", "_links": { "self": { "href": "/kin29?word=man" } } }
ちょっとアレンジしてます。
GETパラメータ名「word」は、onGet関数の引数名と合わせればなんでもいいようですね。
まだまだ全然わかってません…チュートリアルささっとします。
アノテーションで機能を導かれ、機能となる
print_oすごかった!地下鉄の線路図みたいでした。
ほかのセッションで、Hackもやってみたいなと思いました。
型に厳しいということで不慣れなことが多そうですが。
チュートリアル:http://hacklang.org/tutorial.html
モチベーション上がるいい機会でした。
スタッフ&スピーカー&スポンサーの皆様ありがとうございました。