最近全然書けていなかったので近況報告をば。
- 卒研終わったぞー
- 最終登校日も過ぎちゃったなあ
- ロシアウクライナ戦争
- 日本はかなり危機なのでは……?
- ゼレンスキーの覚悟すごい
等々、この期間に思ったことはかなりあるのだが、取り急ぎ、ブログサーバの開発に関して。
ブログサーバの開発
ブログサーバ(not CMS, like SNS)の開発を最近始めた。
とは言っても、現状実装する予定のものは、ユーザ同士でFollowし合い、Followしているユーザの新着投稿は通知される、程度のシンプルなものだ。 将来的には、
- Feedにも対応してRSSReaderから読める
- サーバ同士でFederationできたり(ActivityPubで実装する気はさらさらないが)
- 1日の間で短文を書き貯めておき、0:00になると放流する的な機能
などがあるとよさそうだなーと思っている。
開発にはPHPとそのWebフレームワークであるPhalconを使っている。
これはPhalconは高速であるためである。 普通のフレームワークはPHPで書かれている。 それに対し、Phalconは、PHPの拡張(C言語などで実装され、コンパイルされる)として提供されているからである。
しかし、Phalconを選定したはいいものの、環境やらライブラリ面やらでとてもつらい。
まず、PHPのLSP(Language Server Protocol)がWindowsでは満足に動かない。 私はemacsで普段開発をしているため、LSPが満足に使えるのと満足に使えないとでは、開発時のやる気や生産性には雲泥の差が生まれる。
次に、Phalconのmigrationツールの問題である。 PhalconにはRDBMSへのmigrationツールがある。しかし、今の最新リリースで、使っているv5-beta3には対応していない。 さらに、このプロジェクトは開発が停滞していて、正直、今後この問題が修正される見込みがなさそうである。 そのため、Webフレームワークからは独立したmigrationツールを探すことになった。
3つ目に独立したmigrationツール不足である。 Phalconのmigrationツールの問題の章で語った通り、フレームワークからは独立したmigrationツールを探すことになった。 そのため、awesome-phpでmigrationの章を漁ってみたら、cakePHP/phinxが見つかった。
しかし、Columnに対し、unique属性が付けられず実用できるかが非常に微妙である。 他もREADMEを見てみたが、SQLite、MySQLからPostgreSQLに対応したものがそもそも少ない。
てなわけで困っている。
Phalconのバージョンを落として使ってみるか…… v4の最新版は自力でビルドしなきゃだし、PHPのバージョン落とさないと動かなそうなんだよな……
CodeIgniterやLaravelなどのPHPの他のフレームワーク、ElixirやGolangなど他言語に移植するのも一つの手なんだが、一から書かないとだしな……
どちらにせよ気が進まない……