狠狠撸

狠狠撸Share a Scribd company logo
いまどき(これから)の笔贬笔开発
Shizuoka.php#1 @kubotak_public
Pro?le. ~ 2015/08 istyle.inc
久保田 賢二朗
● PHP(Laravel/Phalcon)
● JavaScript(Vue.js/Svelte)
● Go
● Scala
kenjiro kubota @kubotak_public
テクノロジー本部 R&D部 技術開発部 チーフエンジニア
Laravel JP Conference 2020 コアスタッフ / RoppongiDesignersメンバー
Pro?le. 実家の紹介
株式会社 久保田石材
創業88周年
お墓?墓石?記念碑など
今日のテーマ
久しぶりにPHPの門を叩いたPHPerが考える
いまどき(これから)のPHPアプリケーションの開発について
いまどき(これから)はもっとこんな開発だよ!
というご意見?知識をお持ちの方はぜひ懇親会で教えて下さい!
今日話すこと
いまどき(これから)のPHPでの開発とは????
1. PHP7.4
2. 开発环境
3. 周辺ツール
PHP7.4
PHP7.4
2019年11月28日リリース予定
現在はBeta版が利用可能
主な変更?追加
● 配列式のスプレッド演算子
● アローファンクション
● null合体演算子
● 型付きプロパティ
● 共変戻り型と反変パラメータ
● プリローディング
配列式のスプレッド演算子
PHP5.6以降で利用可能な引数のアンパック
配列式のスプレッド演算子
配列にも使えるようになる!
配列式のスプレッド演算子
array_merge不要
配列式のスプレッド演算子
関数でもいける。
アローファンクション
無名関数を短く書ける
アローファンクション
親スコープの変数をキャプチャできるのでuse文が不要
アローファンクション
複数行での処理は書けないので既存の無名関数を置き換えできるものではない
null合体演算子
PHP7以降で可能になった合体演算子
null合体演算子
$aが未定義やnullなら’none’
型付きプロパティ
void, callable以外の型を指定可能
共変戻り型と反変パラメータ
反変
共変 最初に指定された型よりも強い派生型を使用できる
最初に指定された型よりも弱い派生型を使用できる
共変戻り型の例
反変パラメータの例
プリローディング
事前にバイトコードをキャッシュして高速に利用で
きるようにする仕組み
OPcacheと異なり、ファイルの変更感知をしない。
Webサーバを再起動しない限りキャッシュを保持し
続ける。
プリローディング
php.iniにpreload定義を記述したphpファイルを指定
プリローディング
php.iniで指定したphpファイルにはキャッシュしたい
phpファイルを記述する
开発环境
10年前くらいの开発环境
● リモートサーバ
● XAMPP
● MAMP
● Aptana
● Eclipse+PDT
統合开発环境(IDE)?エディタ
いまどきの开発环境
● docker-compose(Docker)
● PhpStorm
● Visual Studio Code
統合开発环境(IDE)?エディタ
docker-composeとは
複数のDockerコンテナで構成されるアプリケーションの、
Dockerイメージのビルドや各コンテナの起動?停止などを
より簡単に行えるようにするツール。
docker-compose.ymlを記述することで構成を管理する
(例)docker-composeでPHPアプリケーション
● Nginx
● php-fpm
● MariaDB
● Memcached
ディレクトリ构成
docker-compose.yml
Nginx
php-fpm
MariaDB
Memcached
周辺ツール
Xdebug
PHPをリモートデバッグできるツール
これ自体はいまどきでもこれからでもなく、10年前から存
在している。
docker-composeと合わせて使うのが簡単だったので紹介
Docker?le
PHPStan
PHPを静的解析できるツール
似たようなものにPhanがある。
● 構文エラーがないか
● 引数は適切か
● 未定義のものにアクセスしていないか
● 型は適切か
● PHPDocと乖離がないか
phpstan.neon
Deptrac
定義通りの依存関係になっているかをチェックするツール
似たようなものにdependency-analyzerがある。
例えばレイヤードアーキテクチャ
UI(Presentation)
Application
Domain
Infrastructure
依存の方向は上から下
このルールを守らせるにはどうしたらよいか。
雑なディレクトリ构造
dep?le.yml
dep?le.yml
dep?le.yml
定义に违反していないかチェック
まとめ
● PHP7.4はすぐそこ!使いこなそう!
● 本番は物理だったとしても开発环境は
仮想化しよう!
● 颁滨ツールを効果的に使おう
thx:)

More Related Content

いまどき(これから)の笔贬笔开発