ちょっとサクッと試したいことがあるのですが、そのやりたいことでは「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
にアクセスすると
トップページが表示されました。
コケたところ
最初、愚直にコマンドをそのままコピペしたのですが、
> 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
として回避しました。
これくらい薄いと追いかけるのもパッと見で済むので楽ですね。
さて、では本題を作り始めますか。
参考