Dietcube を試す

ちょっとサクッと試したいことがあるのですが、そのやりたいことでは「APIとして振る舞うのではなく、レンダリングまでしてくれる」方が嬉しいので、そういうフレームワークを、ということで Dietcube を試すことにしました。 モック的にサクッと作るだけなのでなるべく小さく軽いもので、MVCなもの……ということで、以前使ったことのある DietCake の次のフレームワークに目を付けたわけです。 ということで以下開始まで。
> composer create-project dietcube/project -s dev sampleproject
Installing dietcube/project (dev-master 8ffa66993ed3eb363242a25cd8a3853396c99f54)

# 略

Writing lock file
Generating autoload files
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? y
> DietcubeInstaller\Installer::initialize
Initialize Sampleproject ...
-------------------------------------------------------------------------

Dietcube setup completed.

Try now with built-in server:
$ cd sampleproject
$ DIET_ENV=development php -d variables_order=EGPCS -S 0:8999 -t webroot/

-------------------------------------------------------------------------
最初は skeleton プロジェクトからcomposerでインストール。ついでにgitを飛ばします。 ディレクトリを移動して、コマンド直打ちは面倒なのでcomposer scriptsに追加します。
{
    "name": "dietcube/project",
    "description": "Project skeleton for Dietcube 1.0.x",
    "require-dev": {
        "phpunit/phpunit": "5.1.x",
        "fabpot/php-cs-fixer": "1.x",
        "phpunit/php-code-coverage": "3.x"
    },
    "license": "MIT",
    "require": {
        "dietcube/dietcube": "1.0.x"
    },
    "autoload": {
        "psr-4": {
            "Httpstatus\\": "app/"
        }
    },
    "scripts": {
        "start": "php -d variables_order=EGPCS -S localhost:8999 -t webroot/"
    }
}
これでcomposer startしてlocalhost:8999にアクセスすると
dietcube skeleton のトップページ
dietcube skeleton のトップページ
トップページが表示されました。

コケたところ

最初、愚直にコマンドをそのままコピペしたのですが、
> php -d variables_order=EGPCS -S 0:8999 -t webroot/
<br />
<b>Warning</b>:  Unknown: php_network_getaddresses: getaddrinfo failed: ???????z?X?g??s??????B  in <b>Unknown</b> on line <b>0</b><br />
[DDD MMM dd hh:ii:ss yyyy] PHP Warning:  Unknown: php_network_getaddresses: getaddrinfo failed: ???????z?X?g??s??????B  in Unknown on line 0
[DDD MMM dd hh:ii:ss yyyy] Failed to listen on 0:8999 (reason: php_network_getaddresses: getaddrinfo failed: ???zXg?s?B ) Script php -d variables_order=EGPCS -S 0:8999 -t webroot/ handling the start event returned with error code 1
と怒られてしまいました。手元の環境だとローカルのIPアドレス・ポートの指定が0:8999だと上手く動かなかったようです。そこで、私の場合はcomposer.jsonに書いたようにlocalhost:8999として回避しました。 これくらい薄いと追いかけるのもパッと見で済むので楽ですね。 さて、では本題を作り始めますか。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。