Özgür Adem Işıklı

Adonis Web Framework İncelemesi

21 February 2016

Adonis, NodeJS ile daha az kod yazarak uygulama geliştirmeyi amaçlayan ve MVC mimarisine göre oluşturulmuş bir framework'dür. Diğer NodeJS web frameworklerine göre öne çıkan başlıca özellikleri ES6 ile geliştirme yapmayı amaçlaması ve PHP dili için geliştirimiş Laravel'in mimarisine benzer olmasıdır.

Laravel Benzerliği

Adonis dokümanlarında da yer aldığı gibi; Laravel'in özellikleri kasıtlı olarak framework bünyesinde uygulanmaya çalışılmaktadır. Benzerlikleri anlamak için temel bazı tanımlamaları hem Laravel'de hem de Adonis bünyesinde incelememiz yeterli olacaktır.

Routing


Route::get('user/{id}', 'UserController@showProfile');  // Laravel

Route.get('user/{id}', 'UserController.showProfile')  // Adonis

Controllers


// Laravel
namespace App\Http\Controllers;

class UserController extends \App\Http\Controllers\Controller {

    public function showProfile($id)
    {
        return 'showProfile';
    }
}

// Adonis
class UserController {

  *showProfile (request, response) {
    response.send('showProfile')
  }

}

module.exports = HomeController

Request


$request->input('email');   // Laravel

request.input('email')  // Adonis

Response


response()->json(['name' => 'foo']);   // Laravel

response.json({ name: "foo" })  // Adonis

ORM

Adonis'de de tıplı Laravel'in Eloquent ORM'si gibi bir Lucid adında bir ORM kütüphanesi bulunur.


// Laravel
namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

}

// Adonis
const Lucid = use('Lucid')

class User extends Lucid {

}

Adonis'de de tıplı Eloquent ORM'de yaptığınız gibi ilişkiler tanımlayabilir ya da şartlara bağlı sorgulamalar yapabilirsiniz. Ancak yazının çok uzamaması için, ilgili bölümleri dahil etmiyorum. Link aracılığı ile daha detaylı bilgi alabilirsiniz: İlişkiler, Sorgular

Konsol Komutları

Adonis tıpkı Laravel gibi bazı görevleri gerçekleştirmek için bir komut satırı desteğiyle birlikte gelmektedir.


{BODY}amp;nbsp;./ace make:controller Home
$ ./ace make:model User

Avantajlar

Dezavantajlar

Sonuç

Benim görüşlerime göre gelecek vaadeden, ancak zamana ve desteğe ihtiyacı olan bir framework denemesidir. Eğer zaman içerisinde ihtiyacı olan desteği diğer developerlardan bulabilir ve geliştirmeler ivme kazanırsa, NodeJS topluluğu tarafından sahiplenilecektir.

Kaynaklar