Node.jsのバージョンも一気に4まで上がり、es6の仕様が大幅に取り入れられ
class構文もサポートされました。
Node.jsのWebフレームワークも色々とありますが、
es6の仕様をふんだんに取り込んだフレームワークはマダマダ多くない印象があります。
そんな時期に先手を切って、es6の機能を実装したMVCフレームワークがリリースされています。
adonis.js
adonis.js(アドニス)はLaravelフレームワークの影響を強く受けており、
Laravelライクに作られています。
Routeを例に挙げるとこうです。
// routing example
// #get
Route.get('/', function * () {
return 'Hello world.'
})
// #post
Route.post('/', function * () {
return 'Hello world.'
})
// controller
Route.get('/home','HomeController.index')
// named route
Route.get('/user/:id', 'ProfileController.show').as('profile')
コントローラーに関してはclassが使用可能で見通しが良くなっています。
'use strict'
// app/Http/Controllers/HomeController.js
class HomeController{
// index method
*index(request,response){
// viewの呼び出し
const view =
yield response.view('index.html',
// テンプレートに変数メッセージの割当
{ message : 'Helllo Adonis Framework' } )
response.ok(view)
}
}
module.exports = HomeController
Laravelに影響を受けているだけあり、共通する部分も幾つかあります。
試しにインストールして、少し触ってLaravelと比較してみた感想です。
(私自身、Laravelを4.0リリース当初から使っています)
- artisanコマンド -> aceコマンド (コマンド数はまだ少ないが、使い勝手は似ている)
- Eloquent Model -> Lucid(Eloquentを使ったことがあるなら習得がしやすそう)
- Colelction -> lodash.jsベース(chain method)
- bladeテンプレート -> twigより
- validation -> 定義の仕方はほぼ同じ
- フォルダ構造もよく似ている
- namespaceのような概念も取り入れられている
adonis.jsはリリースされて間もないので、情報はまだまだ少ないですが
今後はコミュニティーが盛んになってほしいです。
何より、javascript一択で開発が出来ると言う部分は大きいですね。