メジャーバージョンアップでやりたいこと
メジャーバージョンアップするとしたら、個人的にやりたいなと思ってること:
- PHP 7.1以上対応にする
- コードスタイルを今風にする
- short array syntaxとか戻り値の型ヒントとか
- その他あまり知らないけどあれば取り入れてく
- コードスタイルを今風にする
- 周辺ライブラリのアップデート
- php-cs-fixerでコード規約チェック
- PHPStan or Phanの導入
基本的に本体のコードは安定してるのでロジックに手を入れる必要はないと思ってるが見つかればやる(非推奨API使ってるとか)。
ライブラリを探してる人が安心して導入に踏み切れる状態にできていればいいなと思う。
あとは自分の興味の範囲でやれるところから無理なくやっていきたい。
woothee-php v1.8.0をリリースした
リリースした。
https://github.com/woothee/woothee-php/releases/tag/v1.8.0
Packagistにも公開されている。
https://packagist.org/packages/woothee/woothee#v1.8.0
リリース作業が初めてだったので、@yuya_takeyama さんに手順を教えていただいた。Github Releasesでリリースを作るとwebhook経由でPackagistにも公開される。便利。
woothee-phpのtravis-ci.ymlを見直した
woothee-phpのコミット権をもらっているのだが、いつのまにかTravis CIでPHP 5.3のテストが失敗する状態になってたようで、修正のプルリクエストを頂いたのでありがたくマージさせてもらった(一ヶ月以上放置してしまってすみません)。 内容としてはテスト対象のPHPバージョンから5.3を外すものだった。
https://github.com/woothee/woothee-php/pull/39
ただ、マージしてから思ったが、woothee-phpはPHPの対応バージョンが5.3.3以上となっている。なのでPHP 5.3のテストはしておきたい。もしPHP 5.3の対応を外すとなると非互換の変更になるため、それはメジャーバージョンアップで行うべきだと思う。
なので、まずはPHP 5.3でテストが完走するようにtravis-ci.ymlを調整した。
https://github.com/woothee/woothee-php/pull/40
今後の方針として個人的には、次のメジャーバージョンで古いバージョンのサポートは切りたい。5.3を切ればshort array syntaxが使えるし、7.0以降に導入されたいろんな便利な機能を使った今どきのPHPプログラミングに興味がある。いまだとPHP 7.1以上サポートとするのが良さそう? http://php.net/supported-versions.php
しばらくPHPから離れていたので、これを気に再入門してみたい。
railsなしのwebアプリ開発 (2) アプリケーションサーバ
アプリケーションサーバについて。
たしかrackを使うはずなので、rackについて調べる。
- GitHub - rack/rack: a modular Ruby webserver interface
- Rack解説 - Rackの構造とRack DSL - Qiita
- 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge ...
やることはみっつ。
これでrackup
コマンドでアプリケーションサーバが起動する。
$ bundle exec rackup [2018-09-04 17:42:40] INFO WEBrick 1.4.2 [2018-09-04 17:42:40] INFO ruby 2.5.1 (2018-03-29) [x86_64-darwin17] [2018-09-04 17:42:40] INFO WEBrick::HTTPServer#start: pid=5268 port=9292
WEBrickって見覚えあるけどrackに入ってるやつだったのか。
ログにあるとおり9292番ポートで待ち受けているので、http://localhost:9292 にアクセスするとページが表示される。
railsなしのwebアプリ開発
いきなりRailsから触り始めたのでアプリケーションサーバとかRailsがいい感じにやってくれてることがよくわかってない。 一度基本に立ち返ってみる。
- アプリケーションサーバ
- これはrackを使うのだろう。
- DB接続
- mysql2を使う?
- テンプレートエンジン
- わからない
- ルーティング
- わからない
まずはアプリケーションサーバから確認していく。
browserifyを試す
とある案件でJavaScriptでブラウザ判別をする必要があり、それではとwoothee-jsを使った。1ファイルにまとまってるファイルがあったので今回はそれを使ったけど、npmのパッケージが用意されてるのでbrowserify使ったらどうなんだろうと思って試してみた。
まずは公式サイトを参考に進めてみる。
作業
インストール。
$ npm install -g browserify
browserify
コマンドが使えるようになった。
$ browserify Usage: browserify [entry files] {OPTIONS} 〜略〜
とりあえず作業ディレクトリを作って
$ mkdir -p ~/dev/labo/browserify/hello-browserify $ cd $_
npmパッケージをインストール。
$ npm install woothee
main.js を記述。
var woothee = require('woothee'); woothee.parse('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)');
ビルド。
$ browserify main.js -o bundle.js
コードがライブラリと実装コード含めて bundle.js にまとまった。
これを <script src="bundle.js"></script>
のように読み込めばブラウザで動くはず。
まとめ
- 分かったこと
- 分からないこと
require
という関数は何なのかrequire
関数がnpmパッケージを検索する手順
感想
node.jsとかnpmとかの理解が全然足りてないが、JSのパッケージ管理についてとっかかりがつかめた気がする。 次はrequrejsについて調べてみたい。