Marten adalah kerangka kerja web kristal yang memungkinkan pengembangan pragmatis dan prototipe cepat. Ini menyediakan serangkaian alat yang konsisten dan dapat diperluas yang dapat dimanfaatkan pengembang untuk membangun aplikasi web tanpa menciptakan kembali roda.
Sederhana
Sintaks Marten diwarisi dari kelicikan dan kesederhanaan bahasa pemrograman kristal. Selain itu, kerangka kerja mencoba menjadi ciuman dan patuh kering sebanyak mungkin untuk mengurangi waktu-ke-pasar.
⚡ Cepat
Marten memberi Anda kemampuan untuk membangun aplikasi web berfitur lengkap dengan memanfaatkan kinerja logam telanjang dari bahasa pemrograman kristal. Ia juga mencoba mengoptimalkan waktu kompilasi yang layak.
? Fitur penuh
Marten menganut filosofi "baterai termasuk". Di luar kotak, ia menyediakan alat dan fitur yang biasanya diperlukan oleh aplikasi web: ORM, migrasi, terjemahan, mesin templating, sesi, email, otentikasi, dll.
? Dapat diperluas
Marten memberi Anda kemampuan untuk berkontribusi fungsi tambahan dengan kerangka kerja dengan mudah. Hal -hal seperti implementasi bidang model khusus, jenis parameter rute baru, toko sesi, dll ... dapat didaftarkan ke kerangka kerja dengan mudah.
? Berorientasi aplikasi
Marten memungkinkan pemisahan proyek menjadi serangkaian "aplikasi" logis. Aplikasi ini juga dapat diekstraksi untuk menyumbangkan fitur dan perilaku ke proyek marten lainnya. Tujuannya di sini adalah untuk memungkinkan penciptaan ekosistem aplikasi yang kuat dari waktu ke waktu.
? ️ amankan
Marten hadir dengan mekanisme keamanan di luar kotak. Hal-hal seperti pemalsuan permintaan lintas situs, clickjacking, atau suntikan SQL diurus oleh kerangka kerja untuk menghindari masalah keamanan umum.
Alat yang Anda butuhkan dibangun ke dalam kerangka kerja. Database ORM, terjemahan, migrasi, templat, sesi, email, otentikasi, dan banyak lagi yang dapat dimanfaatkan segera.
Rancang model Anda dengan mudah
Marten hadir dengan objek-relasional-mapper (ORM) yang dapat Anda manfaatkan untuk menggambarkan database Anda menggunakan kelas kristal dan DSL yang nyaman.
class Article < Marten::Model
field :id , :big_int , primary_key: true , auto: true
field :title , :string , max_size: 128
field :content , :text
field :author , :many_to_one , to: User
endPermintaan proses dengan penangan
Penangan bertanggung jawab untuk memproses permintaan web dan untuk mengembalikan tanggapan. Ini dapat melibatkan pemuatan catatan dari database, rendering templat HTML, atau menghasilkan muatan JSON.
class ArticleListHandler < Marten::Handler
def get
render " articles/list.html " , { articles: Article .all }
end
endRender konten yang menghadap pengguna dengan template
Templat menyediakan cara yang nyaman untuk menentukan logika presentasi Anda dan menulis konten (seperti HTML) yang diterjemahkan secara dinamis. Rendering ini dapat melibatkan catatan model atau variabel lain yang Anda tentukan.
{% extend "base.html" %}
{% block content %}
< ul >
{% for article in articles %}
< li > {{ article.title }} </ li >
{% endfor %}
</ ul >
{% endblock content %}Dokumentasi browsable online tersedia di https://martenframework.com/docs.
Apakah Anda baru dalam kerangka kerja web Marten? Sumber daya berikut akan membantu Anda memulai:
Morgan Aubert (@ellmetha) dan kontributor.
Kerangka kerja web Marten awalnya menarik inspirasi dari Django dan Ruby on Rails. Anda dapat menelusuri bagian pengakuan dari dokumentasi untuk mempelajari lebih lanjut tentang berbagai inspirasi dan kontribusi yang membantu membentuk Marten.
Mit. Lihat LICENSE untuk detail lebih lanjut.