type holyshared = Engineer<mixed>

PHP、Hack、Ruby、Javascript周りの技術ブログ

Hacklang

HackでDBのマイグレーションツールを作った

HackでDBのマイグレーションツールを作ってみた。 データベースの作成、削除、スキーマ変更の適用、適用の取り消しが一通りできます。 現在のバージョンでサポートしているRDBMSはMySQLのみです。 また、マイグレーションはSQLベースです、DSLはサポートして…

Hackで書いた自作のオプションパーサーをリファクタリングした

結構昔にHackでオプションパーサー書いていたのですが、しばらく面倒でメンテナンスを放置していました。 それをHHVM-3.21.0がリリースされてたタイミングで、メンテナンスしている他のパッケージと一緒にリファクタリングしました。 使いかたはこんな感じで…

Hackの型のチェックのエラー内容をレビューコメントとして投稿できるようにした

Hackの型チェックをCI上で行っていたのですが、エラー内容を見るのにCI環境側までいちいち見に行かないといけないので、OCamlでレビューコメントとして投稿できるtypesafety-cliを作りました。 レビューコメントは下記のような感じになります。 https://gith…

Hacklangのパッケージのテストコードを、型チェックかかるようにしたかったが断念した話

タイトルの通りHacklang用のパッケージを開発していて、テストコードも型のチェックしたかったので、 できるか試してみました。 今、自分がパッケージ開発で使用しているテストツールは下記の通りです。 peridot-php/peridot - BDDテスティングフレームワー…

PHPのコードをHackのコードに変換する

PHPコードをHackのコードに置き換えるのは、最高に面倒くさいですよね。 なので、HHVMで提供されている、hackificatorを使用して、一気に変換できないかを検証してみました。 hackificatorはPHPコードをHackに置き換える為のコマンドラインツールです。 hack…

Hacklang用にベンチマーク取れるライブラリを作った

HacklangでのJITの検証とか、Vector、Setのパフォーマンスの計測がしたかったので作りました。 計測用のコードは下記のような感じになります。 namespace hhpack\performance\example; require_once __DIR__ . '/../vendor/autoload.php'; use hhpack\perfor…

typechecker-clientで型のカバレッジ取れるようにした

型チェックの比率が知りたかったので、クライントのライブラリにAPIを新しく追加しました。 ファイル/ディレクトリ単位でデータを抜いて、整形することで見やすいフォーマットに整形して表示したり、 データを別の形式に変換したりすることができます。 簡…

typesafetyっていうパッケージを作った

typesafetyというパッケージを作りました。 Hacklangでコードを書いていると頻繁に型のチェックをかけるのですが、チェックをするのにサーバーを再起動したりしないといけないのでとても面倒でした。 なので、サーバーの起動と型のチェックをまとめてできる…

Hacklang用のテスティングフレームワークを作った件

hhspecifyっていうBDD styleのテスティングフレームワークを公開しました。 下記のコマンドでcomposerを利用してインストールできます。 composer require hhspecify/hhspecify 使い方は下記の通り。 設定ファイルの作成 まず、最初に設定ファイルを作成しま…