PHP × Web Tech Cafe
『Web×PHP TechCafe』は、WebやPHPに関わるITエンジニアがスキルアップのために開発や勉強、LTをするコミュニティです。オフィスをスキルアップの場としてご提供します。
今回は PHP × Web Tech Cafe 11月の内容をまとめてお伝えします!!
Lightning Talks
参加者の方にLTを行っていただきました!
- Javaエンジニアが怖いと思うPHPの仕様
- ソースコード共有サービス emoscode (エモすこ)
- The World of PHP
Javaエンジニアが怖いと思うPHPの仕様
by soachr さん
Java を3年半使っていたsoachrさんから見た、PHPの不思議なところを紹介いただきました。
PHP初学者のあるあるがたくさん含まれていました。
- ifの中で代入する場合の挙動 → Javaならエラーなので違和感あり
- 空文字をifの条件に入れる → 型がないので普通に実行できてしまう
- 第二引数がない関数 → エラーにならない
→ PHPは ゆるふわ!!
ソースコード共有サービス emoscode (エモすこ)
by ともたこ さん
ともたこさんが作成したソース共有サービス「エモすこ」を紹介いただきました!
テーマは 「エモいコードにすこを加える」だそうです!
- ソースコード共有サービス
- ソースコード上にコメントを貼り付けられる
- SNSでのシェアも可能
技術要素
- フレームワーク:bottle-breaker
- フロント:JS→TypeScript
- ホスティング:Heroku
- etc...
今後の展望
- 現在はコードのアップロードのみ → 編集、削除ができるようにしたい!
- 誤解するようなUIを修正
The World of PHP
by @kawanamiyuu さん
PHPとは
- さまざまな目的で使える
- 特にWebで使える
- 十分早い
- 実用的
PHPは何の略?
→ PHP: Hypertext Preprocessor
PHPの歴史
- 1995年に誕生(このときは personal Home Page tool の略だった)
- レガシーとモダン(5.2と5.3で変わる)
- 名前空間の導入
- 自動読み込み
- Composer(依存管理ツール)
- 型定義
PHPのいいところ
- 十分に高速
- webサイトを構築するのに最も使われている言語である
- よく知ってるサービスで使用されている
- 公式マニュアルが充実
- Hello world が異常に簡単
- コミュニティも活発
まとめ 〜PHPとは〜
Rasmus Lerdorf の言葉
- PHPは歯ブラシ : 日常で使うあくまで便利な道具である
- PHPは話し言葉のように進化してきた : 新しい言葉が追加され、古い言葉は使われなくなっていく
ディスカッション議事録
今回は、もくもく学習だけでなく、PHPについてのテーマに基づいたディスカッションを行いました!
今回のテーマ
- PHP7.4の新機能をRFCを見ながら「何が嬉しいのか、どういう時に使うのか」などを参加者同士でお話しする。
RFC
Migration
今日のディスカッション対象
Typed Properties
- プロパティ型指定
- https://wiki.php.net/rfc/typed_properties_v2
- ディスカッション内容
クラスのプロパティに型を指定できる。
- 違う型を指定しようとするとエラー
- モードで使えるかどうかを指定できる
- クラスも指定できる → オブジェクト指向の実装がやりやすい
- 新しいコードから使用していく
- 型指定があるプロパティとないものの混在も可能
- NULL許容演算子でNULLを許すかどうか制御できるのが嬉しい
- コードを読むときに見当がつけやすくなる
- 変数名の$~~Strが無くせる!
- ジェネリクスがあったらいいのに...
- RFCはあった: PHP: rfc:generics
- 連想配列の型指定も欲しい
Foreign Function Interface
- FFI
- https://wiki.php.net/rfc/ffi
- ディスカッション内容
PHPから他の言語を呼び出せます。
- 24 vs 15 で可決された
- そもそものRFCのあり方のディスカッションにもなった
- 他の言語でも同様のことはできるので世の中の流れ的には納得感ある
- 文字列で書く仕様はいかがなものか…
- 記述内容をコンパイルして利用する
- コンパイル済みの実行ファイル置いておけばいいのでは?
- 使いようによってはコンパイルした結果をキャッシュすることができる
- PHPの拡張機能を使うことを想定している?
- 速度改善が目的?
- すでに存在するCのコードを生かすため?
参考
Null Coalescing Assignment Operator
-
NULL合体演算子
-
ディスカッション内容
Nullかどうかを確認する演算子をさらに省略系にする
- 書くのは楽になる
- 読みにくくはならないか?
- 短いことは読みやすいことである?
-
??
を見たときにコードの意図はすぐ理解できる
- リクエストパラメータのデフォルト値設定とかに使いやすそう
- シングルトンパターンのインスタンス存在判定に使えそう
PHPの亜種たちはどこいった??
P++とは?
もっとPHPを厳密化して使いましょうといった言語。
話題になったが提案だけで移行動きがない
参考: P++: 銀河に平和をもたらすための奇策と決着 - Qiita
Hack
Facebookが作成していたPHPを拡張して使おうとしていたもの。