Today Fortkle Learned.

知らないことの方が多いので今更調べています。さらに一歩先に行けたら嬉しいです。

『PHP BLT #1』に参加しました!

PHP BLT とは

全員がLTで発表するというコンセプトのPHP周辺/Web/サーバサイド全般の勉強会

phpblt.connpass.com

以下メモ

『自作ArrayでPHPのメモリ節約』"よや" yoya@awm.jp

speakerdeck.com

  • PHPの配列は重たい」という問題提起
    • 原因はArray管理データが大きい事
    • SplFixedArray はArray管理データがごそっと減っているので早い
  • もっと節約したい=自作の提案
    • ArrayAccess + Countable + Iterator を使い、PHPで実装
    • 3GBメモリが20MBメモリに!100分の1のメモリ使用量!
  • 自作Arrayの注意点

『I ♥ PHPOpenpearの素敵な終わらせ方)』@riaf

  • Openpear
    • 作った
    • 誰でもパッケージ公開ができる野良PEARチャンネル
    • 諸事情により使われなかった;;
  • Openpearの素敵な終わらせ方」が本題
    • 急に閉めると意外と困る
    • Openpearは今日で終了しました」!?
    • Github Pagesに移行した

PHP BLTだけどHTML5のコンテンツモデルのお話』@fivestr

speakerdeck.com

  • HTML5のイメージ
    • なんだかんだイケてるやつ
    • 今日はそういうキラキラ✨話はしない
    • 今日はコンテンツモデルについて話す
  • ブロック要素、インライン要素
    • 仕様的に、インライン要素の中にブロック要素は入れられなかった
    • HTML5のコンテンツモデルではそれが変わった
    • 複雑な要素のカテゴリーがいっぱいある
  • 今までと違う所
    • 要素が複数のカテゴリーに属することができる
  • 気をつける所
    • 基本的には同じ
  • なぜこの話をしたか
    • 「HTML Paragraphizer」 を作ったから。
    • オープンソース化!と言おうと思ったけどそのまえに退職...

『Big "Master" Data』@kazeburo

www.slideshare.net

  • 「マスターデータ」(トランザクションデータと対になるもの)
  • 何の問題を引き起こしやすいか? => N+1問題
  • マスターデータが大きいと、ロードが遅くなる
    • OPcacheを使えばたしかに早くなるが、内部的にshared memoryからコピーするときにオーバーヘッドが大きい
    • なんとか小さくしたい
  • tsvで解決した!
    • Production適用済み。効果もあった。

『便利なLoggable Trait』@brtriver

  • Symfony DI Component
    • 簡単にインジェクションできるが・・・
    • テストを書こうとすると、毎回loggerのインジェクションの必要が
  • Traitでいい感じに解決した
  • 本当に必要なものだけコンストラクタインジェクションすべき

『writeting php extension in Go』@do_aki

www.slideshare.net

  • Goの中でPHPエクステンションを書いてみた
  • 話が難しい...(涙目)
  • サンプルどうぞ
    • do-aki/gophp_sample
  • ただし、たまにセグフォw

『Lerning Swift2 with PHP7』@suzuki

speakerdeck.com

  • PHP7とSwiftの比較
    • Comment, Type, Access, Operator, if, break, for, while, function, class
  • Swift2でWebアプリケーションを書いてみた!?

『Couchbase x PHP』@ytake

  • Couchbase
    • ドキュメント型NoSQL
  • なぜ使おうと?
    • fluentd, Elasticsearch, Sparkと一緒に使うといい感じ!
  • N1QL(ニッケル)
    • 新たなSQL方言
  • なぜLT?
    • ネットにある情報がふるい! => ドキュメント読もう!

php-buildがいかに便利かを力説する』@hnw

www.slideshare.net

  • PHPでバグを発見したら
    • PHPリビルドしてバックトレースよこせ」=> つらい
  • php-build
    • 各バージョンのPHPを手元でビルドできる
  • phpenvのプラグインとして使うと便利
  • まとめ
    • 欲しいバージョンのPHPが気軽に作れる
    • configureオプションの変更なども簡単

『Phalcon その後 』@arimo

speakerdeck.com

  • PhalconについてPHPカンファレンスで話した
    • めっちゃ早い
  • フレームワーク選定で大事なこと
    • 速さだけにとらわれない
    • メンテされていくか
    • 要件に合っているか
    • 経験者がいるか
    • ネットに情報が落ちているか
  • Phalconで作ったサービスがリリース!!1
    • 「DMM.E」!

『whpを作った』@bto

  • whpを作った!
  • 開始タグ
    • 「<?php」→「<?www」
    • echo は 🍣 www

PHP版 Parallel::Prefork』@travail

Dependency Injection And Pimple』 @DQNEO

www.slideshare.net

  • Dependency Injectionを使うといい感じにインジェクションできるよ
  • メリット
  • デメリット
    • 少し冗長気味

『Current status of PSR』@yui_tang

www.slideshare.net

  • PSR
    • PHPのコーディング規約
    • PHP-FIGが策定・発表
  • 策定の流れ
    • Pre-Draft -> Draft -> Review -> Accepted
  • Googleグループでコミットできるよ!

PHP開発で効率を上げるためにやったこと』@wa_terada

slides.com

  • Vagrant
    • 構築時間短縮がメリット
    • chef済みのboxを作るといい感じ
  • プロジェクトのsetupシェル
    • setup.sh1つでサンプルデータ入で画面が出るように。
  • ソースコードの自動生成
    • CRUD画面は全部自動で作るように。
  • 単体テストが仕様の門番
    • ソースをテストするのではなく仕様をテストする
  • 他にも
    • Fablicate
    • composer

『アプリケーション・サーバーを作ろう』@motoyan_k

www.slideshare.net

  • PHPアプリケーションサーバーを作ってみた
  • 意義
    • PHPでメンテデキる!
    • PHPでプロセス戦略!
    • composer使えると便利そう
  • デモ
    • php-fpmより25%早い
  • 問題点
    • StaticClassに状態を持つ
    • $_XXX系の変数
    • CLI SAPIの問題
  • 落とし所

『PHP7でPHPエクステンションを作る』@Misumi_Rize

speakerdeck.com

『たのしい独自フレームワーク』@tadasan

www.slideshare.net

  • pixiv小説モバイル
  • 車輪の再発明は避ける
    • 積極的に既存ライブラリは使う
    • ルーターはいいのなかったので作った
  • 方針
    • コアは小さく
  • 設計
    • 状態はApplicationクラスに集約する
    • 他は適当に層を用意(MVCのController層など)
    • MVCだと宣言しない(手続き型として開き直る、潔癖になりすぎない)
  • 良いこと
    • 既存のフレームワークが怖くなくなる
    • 用途にあった抽象度のコードは見通しが良い など
  • 悪いこと

『Phalconとメールとテンプレートと』@Yuhshi

www.slideshare.net

  • PhalconPHPでメール送信
    • 付属してないので、Qdmailというライブラリを利用
    • 本文生成はVoltというライブラリ
  • Voltを使う上で出会った闇の話が......

さいごに

発表が楽しかっただけでなく、メルカリさんが会場を提供してくださりPHPBLTにちなんでBLTが出てきたり、 選べる美味しいビールが無料で飲めたり最高でした!運営のスタッフの皆様、ありがとうございました!

f:id:fortkle:20151124210917j:plain

f:id:fortkle:20151124210934j:plain