Dokumentasi API L5-Swagger pada Laravel

Haloo kreatif reader.. kali ini aku mau bahas tentang Dokumentasi API L5 Swagger pada Laravel.

Dokumentasi API adalah dokumentasi yang berisi kumpulan panduan penggunaan API terhadap suatu program atau aplikasi. Dokumentasi API ini digunakan sebagai acuan untuk mendeskripsikan API secara menyeluruh sehingga penggunaan API dapat mudah dipahami oleh seluruh tim pengembang ataupun pengembangan lain untuk pemeliharaan aplikasi selanjutnya.

Salah satu tools  yang dapat digunakan untuk mendokumentasikan API adalah Swagger. Swagger merupakan framework populer yang digunakan untuk OpenAPI Specification (OAS). Penggunaan swagger dapat menyederhanakan proses dokumentasi API secara  interaktif. Dokumentasi yang dihasilkan dapat dengan mudah dipahami oleh pengguna teknis maupun non-teknis.

Saat ini swagger sudah dapat digunakan langsung pada framework Laravel dalam bentuk package L5 Swagger yang bekerja dengan mengadaptasi swagger-php dan swagger-ui.

Untuk melakukan instalasi dan setup L5 Swagger pastikan laravel dan composer sudah terinstall di laptop pengguna. Setelah itu ikuti langkah-langkah instalasi package l5swagger berikut ini:

1. Install package l5 swagger melalui composer

composer requires darkonline/l5-swagger tymon/jwt-auth

2. Publish file konfigurasi L5Swagger

php artisan vendor: publish --provider "L5Swagger\L5SwaggerServiceProvider"

3. Konfigurasi Swagger
Buka file config/l5-swagger.php dan sesuaikan pengaturan misalnya dengan mengonfigurasi path API documentation, keamanan, dan lainnya.

4. Tambah anotasi swagger ke Route dan Controllers
Contoh penggunaan anotasi pada route:

/**
* @OA\Get(
* path="/api/user",
* summary="Get a list of users",
* tags={"Users"},
* @OA\Response(response=200,
* description="List of users",
* ),
* )
*/

Contoh penggunaan anotas pada contollers

/**
* @OA\Info(
* title="Swagger with Laravel",
* version="1.0.0",
* )
* @OA\SecurityScheme(
* type="http",
* securityScheme="bearerAuth"
* scheme="bearer"
* bearerFormat="JWT"
* )
*/

5. Generate dokumentasi Swagger

php artisan l5-swagger:generate

Perintah ini akan menghasilkan file JSON swagger dan secara default menyimpannya di direktori publik.

6. Akses halaman swagger dengan mengunjungi url yang telah dibuat pada file konfigurasi. Contohnya ‘http://your-app-url/api/documentation’

Berikut ini contoh tampilan hasil generate dokumentasi swagger:

swagger-ui-1-768x363

Dengan penggunaan l5 swagger yang mudah diimplementasi ini, diharapkan dapat mendorong kolaboarasi yang lebih baik dan mempercepat pengembangan API pada aplikasi laravel yang dibuat.


Referensi:
Upadhyay, Mayur. (2024, January 04). Laravel Swagger Integration: A Step-by-Step-Guide. WPWEB Infotech.
Kolodii, Ivan. (2020, May 10). How to write Swagger Documentation for Laravel API. Tips & Example. Medium. 

API Documentation using Scramble

screenshot_14

Halo, Kreatif Reader! Pada artikel ini, saya akan membahas mengenai salah satu tools untuk mendokumentasian API, yaitu Scramble. Sebelum kesana, mari kita pahami terlebih dahulu apa itu API serta mengapa API perlu didokumentasikan dengan baik.

API (Application Programming Interface) merupakan interface yang dibangun oleh tim pengembang untuk menyimpan function atau aturan sehingga memungkinkan adanya interaksi dan komunikasi antar aplikasi yang berbeda. Sederhananya, API dapat memudahkan developer untuk mengkonsumsi data dari sistem lain yang terintegrasi, tanpa harus menulis ulang code.

API sendiri memiliki beberapa jenis arsitektur, salah satunya adalah REST API. Pada gambar berikut ini, adalah ilustrasi cara kerja REST API sebagai jembatan antar aplikasi atau platform.rest-api-model

Seperti yang telah disebutkan sebelumnya, bahwa API berisikan function atau aturan, maka perlu dilakukan pendokumentasian yang baik, agar developer dapat dengan mudah memahami fungsi serta cara penggunaan setiap baris kodenya. Idealnya, dokumentasi API berisikan informasi detail API, termasuk fungsi, parameter, tipe pengembalian, kelas, dan lainnya, dalam urutan yang logis.

Salah satu tools yang dapat digunakan untuk dokumentasi API adalah Scramble. Mengutip dari dokumentasi resminya, Scramble merupakan generator otomatis untuk mendokumentasikan API pada Laravel. Scramble menggunakan format penulisan OpenAPI 3.1.0, dimana penyajiannya direpresentasikan menggunakan format JSON atau YAML, seperti contoh di bawah ini.

{
 "name": "John Doe",
 "email": "john.doe@example.com",
 "password": "password"
}

Dokumentasi yang dihasilkan kemudian dibungkus dengan User Interface Stoplight Elements seperti gambar berikut ini:

demo_scramble Continue reading API Documentation using Scramble

Integrasi Laravel Dengan No SQL

Hallo Kreatif Reader…. Kali ini, aku mau sharing nih mengenai integrasi laravel dengan No SQL. Semoga bermanfaat

Laravel adalah kerangka pengembangan web populer untuk PHP. Laravel menawarkan banyak default dan menyediakan struktur kode yang mudah dipahami dan cepat digunakan untuk mengimplementasikan aplikasi web dan API. MongoDB memiliki integrasi resmi dengan Laravel, dan paket terseut tersedia di GitHub.

Integrasi Laravel dengan basis data NoSQL seperti MongoDB dapat dilakukan dengan cukup mudah, karena Laravel mendukung beberapa driver basis data NOSQL. MongoDB adalah salah satu pilihan populer untuk basis data NoSQL, dan kita akan fokus pada integrasi Laravel dengan MongoDB.

Berikut adalah langkah – langkah  umum untuk integrasi Laravel dengan MongoDB:

1. Instalsi MongoDB dan Ekstensi PHP MongoDB:

Pastikan MongiDB telah terinstal di server anda

Instal ekstensi PHP MongoDB dengan menggunakan Composer:

composer require jenssegers/mongodb

2. Konfigurasi koneksi ke MongoDB

Buka berkas ‘config/database.php’ dan tambahkan konfigurasi untuk mongoDB:

'mongodb' => [
 'driver' => 'mongodb',
 'host' => env('DB_HOST', 'localhost'),
 'port' => env('DB_PORT', 27017),
 'database' => env('DB_DATABASE', 'your_database'),
 'username' => env('DB_USERNAME', 'your_username'),
 'password' => env('DB_PASSWORD', 'your_password'),
 'options' => [
 'database' => 'admin',
 ],
],

Sesuaikan nilai ‘database’, ‘username’, dan ‘password’ sesuai dengan konfigurasi MongoDB

3. Atur koneksi pada Berkas.env

Sesuaikan nilai ‘DB_Connection’ dan kredensial MongoDB pada berkas ‘.env’:

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

4. Gunakan model Eloquent MongoDB:

Buat model Eloquent untuk menggunakan MongoDB. Misalkan, jika anda memiliki model ‘Book’, buat file ‘Book.php’:

<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Book extends Eloquent
{
 protected $connection = 'mongodb';
 protected $collection = 'books';
 protected $fillable = ['title', 'author', 'published_at'];
}

Pastikan untuk menyesuaikan nilai – nilai seperti ‘$collection’ sesuai dengan struktur database anda.

5. Migrasi dan penggunaan model:

Buat migrasi untuk struktur MongoDB jika diperlukan:

php artisan make:migration create_books_collection

Gunakan model Eloquent seperti menggunakan model biasa pada Laravel

Referensi
Judul Buku: Belajar Cepat Database NoSQL, Menggunakan Document Priented Databse (MongoDB) pada Pengaplikasian Big Data
Penulis: Agit Amrullah &Kusnawi
Penerbit: Penerbit ANDI
MongoDB

PHPUnit Testing pada Laravel

1200px-phpunit_logo-svg_-1024x413

Hallo kreatif reader, pada kesempatan kali ini aku mau sharing dari artikel yang udah aku baca..

Apa sih itu PHPUnit?
PHPUnit adalah kerangka pengujian (testing framework) untuk bahasa pemrograman PHP yang bertujuan untuk memastikan bahwa setiap bagian kecil dari program berfungsi sebagaimana mestinya. Dengan menggunakan PHPUnit, developer PHP dapat meningkatkan kualitas software dengan mengidentifikasi dan memperbaiki bug lebih awal dalam siklus pengembangan.

Adapun tahapan-tahapan yang dilakukan dalam automated testing menggunakan PHPUnit adalah sebagai berikut:

1. Instalasi software testing menggunakan PHPUnit yang terintegrasi dengan framework laravel untuk pengembangan aplikasi. Ini dapat dilakukan menggunakan Composer. Sebelumnya pastikan Composer telah diinstal, kemudian buka terminal dan eksekusi perintah berikut:

composer require --dev phpunit/phpunit ^9.6

2. Menuliskan kode pengujian pada PHPUnit dengan nama file pengujian (misalnya: MyMathTest.php) untuk menguji fitur yang telah ditentukan sesuai dengan kebutuhan output yang diharapkan. Berikut contoh kode pengujian pada PHPUnit:

// File: MyMathTest.php

use PHPUnit\Framework\TestCase;

class MyMathTest extends TestCase {
 public function testAdd() {
 $math = new MyMath();
 $result = $math->add(3, 5);
 $this->assertEquals(8, $result);
 }

 public function testSubtract() {
 $math = new MyMath();
 $result = $math->subtract(8, 3);
 $this->assertEquals(5, $result);
 }
}

3. Menjalankan PHPUnit untuk mengetahui hasil pengujian (lulus atau tidak), lakukan perintah berikut melalui terminal dari direktori proyek:

vendor/bin/phpunit MyMathTest.php

Jika memiliki banyak file pengujian, dapat menjalankan semua pengujian dengan perintah berikut:

vendor/bin/phpunit

4. Jika fitur yang diuji lulus, status hasil pengujian menjadi “passed”.
5. Jika fitur yang diuji tidak lulus, maka PHPUnit akan menampilkan pesan error.
Catatan: untuk mempermudah deteksi dan eksekusi pengujian oleh PHPUnit, sebaiknya developer memberikan nama file pengujian dengan format “nama class” dan akhiran “.php”

Berikut ini adalah beberapa fitur PHPUnit dengan keunggulannya:
1. Pengujian Unit Otomatis: Fitur ini membantu dalam mendeteksi kesalahan dan memastikan bahwa perubahan kode tidak merusak fungsionalitas yang ada.
2. Pelaporan Hasil: PHPUnit memberikan laporan hasil pengujian yang jelas dan terstruktur. Ini membantu developer untuk dengan cepat mengidentifikasi masalah dan memperbaikinya.
3. Pengujian Fungsionalitas dan Integrasi: PHPUnit juga mendukung pengujian fungsionalitas dan integrasi, untuk menguji sejauh mana berbagai komponen bekerja bersama.
4. Kemampuan Pengujian Paralel: PHPUnit mendukung pengujian paralel, yang dapat menjalankan beberapa unit pengujian secara bersamaan untuk meningkatkan efisiensi.

Sehingga dapat disimpulkan, apabila tim developer sudah menggunakan PHPUnit untuk pengujian otomatis maka dapat mengurangi error dan menghemat waktu dalam pengembangan aplikasi.

Referensi:
[1] Zhang Tao and He Lei, 2018, Design and Implementation of HTTP Interface Automation Test Framework PHPUnit, Department of Informatics, Beijing University of Technology, China, Atlantis Press.
[2] PHPUnit Testing.

Pemahaman & Manfaat Penggunaan Migrasi dan Seeder pada Laravel

mengenal-migra

Halo kreatif readers, pada kesempatan kali ini kita akan mengenal dan memahami manfaat penggunaan migrasi dan seeder yang ada pada Laravel.

Seperti yang kita ketahui bahwa Laravel, sebagai kerangka kerja PHP yang populer, menyediakan dua fitur kunci, yaitu migration dan seeder. Migrasi (migration) memungkinkan pengembang untuk mengelola struktur database dengan mudah, sementara seeder memfasilitasi pengisian data awal.

Migrasi pada Laravel

Migrasi adalah cara Laravel mengelola perubahan struktur database. Dengan migrasi, pengembang dapat membuat dan memodifikasi tabel database tanpa harus berurusan dengan SQL langsung. Setiap migrasi adalah file PHP yang berisi instruksi untuk membuat atau memodifikasi tabel database, kemudian dijalankan dengan perintah ‘Php artisan migrate’. Dibawah ini merupakan contoh file PHP yang berisi migrasi.

migrasi

Seeder pada Laravel

Seeder digunakan untuk mengisi database dengan data awal. Seeder adalah file PHP yang berisi kode untuk menyisipkan data ke dalam tabel. Ini berguna untuk menguji aplikasi atau mengisi database dengan data awal untuk pengembangan. Kemudian dijalankan dengan perintah ‘php artisan db:seed’. Dibawah ini merupakan contoh file PHP yang berisi seeder.

seeder

Integrasi Migrasi dan Seeder

Pada umumnya, setelah membuat tabel menggunakan migrasi, seeder digunakan untuk mengisi tabel tersebut dengan data awal. Pengguna dapat menjalankan keduanya dengan satu perintah menggunakan ‘php artisan migrate –seed’. Dengan menggunakan migrasi dan seeder, pengembang dapat dengan mudah mengelola struktur database dan menyediakan data awal untuk pengujian atau pengembangan.

Manfaat Migrasi dan Seeder pada Laravel

Penggunaan migrasi dan seeder dalam pengembangan web dengan Laravel membawa sejumlah manfaat yang signifikan, Berikut adalah beberapa manfaat penggunaan migrasi dan seeder pada laravel.

1. Manajemen Struktur Database yang Efisien

Migrasi memungkinkan pengembang untuk membuat dan mengelola struktur database secara efisien. Dengan menyediakan file migrasi, perubahan struktur dapat dilakukan secara terorganisir tanpa perlu menyusun perintah SQL secara manual. Ini mempermudah tim pengembangan dalam mengelola skema database.

2. Rekam Historis Perubahan Database

Migrasi mencatat histori perubahan struktur database. Setiap migrasi mewakili langkah-langkah yang diambil untuk membuat atau memodifikasi tabel. Hal ini memungkinkan pengembang untuk melacak dan mengelola versi database, membantu dalam pengembangan kolaboratif dan pemeliharaan sistem.

3. Kemudahan Penyesuaian dengan Tim Pengembangan

Migrasi menyederhanakan upaya kolaborasi tim pengembangan. Setiap perubahan dalam struktur database terdokumentasi melalui migrasi, memungkinkan anggota tim untuk dengan mudah menyelaraskan langkah-langkah pengembangan mereka. Hal ini mengurangi risiko kesalahan yang mungkin muncul ketika melakukan pengelolaan skema database secara manual.

4. Isi Data Awal untuk Pengembangan dan Uji

Seeder memungkinkan pengisian data awal ke dalam tabel, mempermudah pengujian dan pengembangan. Dengan menggunakan seeder, pengembang dapat membuat dataset awal yang dibutuhkan untuk menguji fungsionalitas aplikasi atau mengembangkan fitur baru. Ini mendukung pengembangan yang lebih cepat dan efisien.

5. Konsistensi Server Pengembangan dan Produksi

Migrasi dan seeder membantu menjaga konsistensi antara server pengembangan dan produksi. Dengan menjalankan migrasi dan seeder di kedua server tersebut, pastikan bahwa struktur database dan data awal dijaga konsistensinya, mengurangi potensi masalah saat merilis ke produksi.

6. Pemeliharaan dan Pembaruan Sistem yang Aman

Penggunaan migrasi memungkinkan pemeliharaan dan pembaruan sistem yang lebih aman. Dengan memanfaatkan migrasi, perubahan pada struktur database dapat diuji terlebih dahulu di lingkungan pengembangan sebelum diaplikasikan ke lingkungan produksi. Ini membantu mencegah kemungkinan kegagalan.

Referensi : 

PHP Framework Yii

Haloo kreatif readers.. kali ini saya saya akan membahas tentang salah satu framework PHP yaitu Yii.

Pengenalan Yii

Framework Yii merupakan sebuah framework PHP berbasis komponen yang memiliki performa yang baik. Framework ini bisa digunakan untuk membangun aplikasi berbasis web berskala kecil hingga berskala besar.

Yii mulai dikembangkan pada awal bulan Januari 2008 oleh Qiang Xue.  Saat ini Yii telah tersedia versi 2, sebuah versi yang merupakan lompatan besar dari versi sebelumnya (varian 1.1) dan lebih modern.

Yii merupakan framework PHP lain pada umumnya, dapat digunakan untuk membangun berbagai jenis aplikasi berbasis web, misalnya: web portal, forum, CMS, e-commerce, web service, dan masih banyak yang lainnya. Yii juga memiliki fitur-fitur yang umum dimiliki oleh framework lainnya, seperti MVC (model-view-controller), mendukung banyak basis data, ORM, caching, RESTful, code generator, dsb.

Kelebihan dari framework Yii yaitu:

  1. Memiliki Fitur dan Panduan yang Lengkap
    Yii memiliki fitur yang sangat lengkap seperti tersedianya banyak extension yang bisa kita gunakan atau librarylibrary PHP yang dengan mudah bisa kita integrasikan dengan Yii. Selain itu panduan yang disediakan juga lengkap dan rapi misalnya pada dokumentasi API Yii yang mudah dibaca karena tersusun rapi dengan penjelasan yang mudah dimengerti.
  1. Adanya Komunitas Besar dan Aktif
    Yii memiliki komunitas yang besar sehingga diharapkan ketika kita menghadapi masalah dalam belajar atau pengembangan aplikasi berbasis Yii akan banyak yang membantu.
  1. Memiliki Kode Generator Ajaib
    Yii memiliki kode generator (Gii) yang berfungsi meng-generate kode template model, crud, form, dsb. Sehingga akan mempercepat pemrogram aplikasi dalam membangun sebuah aplikasi. Menariknya, tools ini bisa dengan mudah dikustomisasi sesuai dengan keinginan kita.
  1. Peningkatan Kemanan
    Yii memiliki beberapa fungsi keamanan built-in yang mudah digunakan, antara lain untuk pencegahan SQL injections, XSS attacks, CSRF attacks, cookie tampering, dsb.
  1. Otentikasi dan Otorisasi
    Yii secara built-in mendukung fitur otentikasi dan otorisasi pengguna, seperti: login, logout, cookie-based dan otentikasi berbasis token, access control filter dan role-based access control (RBAC). Di samping itu juga mendukung OpenID, OAuth1 dan OAuth2 protocols.
  1. Didukung oleh fitur-fitur unggulan lainnya seperti:
    URL SEO Friendly yang bernama pretty URL.
    – Mendukung berbagai jenis cache (APC, Memcache, files, basis data, dsb) pada berbagai level aplikasi, baik dari sisi client (HTTP caching) maupun server (fragment caching, dan query caching)
    Built-in Twitter Bootstrap.
    – Secara builtin Yii juga menyediakan tools untuk uji coba aplikasi yaitu Codeception dan Faker.

Adapun beberapa kekurangan dari framework Yii yaitu:

  1. Bukan merupakan framework yang paling populer.
  2. Kurang promosi, sehingga menyebabkan framework menjadi kurang populer.
  3. Update tergolong jarang, sehingga dikhawatirkan akan lambat untuk mengadopsi teknologi baru.
  4. Kecepatan Yii berada di tengah, banyak framework PHP lain yang memiliki kecepatan jauh melampaui Yii.

Arsitektur Yii

Untuk application project template Yii hadir dengan dua pilihan template yaitu Basic dan Advanced. Masing-masing memiliki peruntukannya sendiri, namun bagi pemula, direkomendasikan untuk menggunakan template Basic. Hal ini dikarenakan template ini simple yang terdiri dari satu aplikasi,  dan base-nya adalah template Basic. Adapun template Advanced direkomendasikan untuk pembuatan sebuah proyek aplikasi yang besar, dimana aplikasi backend terpisah dengan frontend.

Alur Kerja Yii

Sama seperti framework PHP lainnya, Yii mengimplementasi konsep MVC (Model-View-Controller) dimana file-file model view dan controller dibuat terpisah. Berikut ini gambaran alur kerja aplikasi yang menggunakan framework Yii menggunakan konsep MVC:

chrome_gteht9qsh9

Alur kerja aplikasi Yii dimulai dari user yang mengakses aplikasi Yii melalui entry script, selanjutnya dilakukan konfigurasi untuk menjalankan aplikasi. Aplikasi tersebut routing yang diminta oleh user melalui URL sehingga diketahui controller yang dimaksud user, kadangkala proses dalam aplikasi ini membutuhkan komponen tertentu sehingga dipanggillah suatu komponen tersebut. Setelah masuk ke controller yang dimaksud, controller menciptakan action berdasarkan routing. Sebelum action benar-benar tercipta maka dilakukan pengecekan atau filter terhadap action tersebut (misalnya: filter otorisasi yaitu apakah action tersebut boleh diakses oleh current user). Jika tidak lolos filter maka controller akan mengembalikan response ke user dan siklus berakhir, namun jika lolos filter maka action akan diproses. Pada action akan dimuat model (jika menggunakan model), demikian juga jika model membutuhkan basis data (active record) maka akan dilakukan pengaksesan basis data. Selanjutnya pada action tersebut akan dilakukan render terhadap suatu view (jika menggunakan view) untuk kemudian view tersebut ditampilkan ke user, dan siklus berakhir.


Referensi:
Mukhlasin, Hafidz. Membangun Aplikasi Profesional Berbasis Web Menggunakan Yii Framework. 2017. Jakarta: Buku Baik.

 

PHP Framework Symfony

Hallo kreatif reader, aku mau sedikit sharing nih dari artikel yang udah aku baca..

Apa itu Web Framework?
Web framework atau yang biasa dikenal dengan web application framework merupakan sebuah software yang menyediakan struktur dan alat untuk membangun dan mengembangkan aplikasi web, web service, dan web dinamis.
Salah satu contoh web framework adalah Symfony (PHP).

logoLalu, apa sih Framework Symfony?
Symfony dibangun pada tahun 2005 sesuai dengan standar PSR yang direkomendasikan oleh standar PHP. Symfony adalah framework lengkap yang dirancang untuk mengoptimalkan kode PHP dalam pengembangan aplikasi Web berdasarkan pola Model View Controller (MVC).

Adapun beberapa fitur pada framework symfony:
1. Struktur MVC (Model-View-Controller)
Symfony mengikuti pola desain arsitektur MVC, yang membantu dalam memisahkan logika aplikasi menjadi komponen-komponen yang terpisah, termasuk Model untuk representasi data, View untuk tampilan, dan Controller untuk mengelola logika bisnis.
2. Twig Template Engine
Symfony menggunakan Twig sebagai mesin template resmi. Twig adalah mesin template yang digunakan dalam kerangka kerja Symfony untuk membangun tampilan (views) dalam aplikasi web. Twig dirancang untuk membuat proses penulisan template lebih bersih, aman, dan ekspresif.
3. Doctrine ORM
Symfony menggunakan Doctrine sebagai Object-Relational Mapping (ORM) untuk berinteraksi dengan basis data. Doctrine memudahkan pengembangan basis data dengan memetakan objek PHP ke struktur basis data.
4. Security Component
Symfony memiliki komponen keamanan yang menyediakan alat dan fitur-fitur untuk mengelola otentikasi, otorisasi, dan perlindungan terhadap ancaman keamanan.
5. Routing
Symfony menyediakan sistem routing yang kuat yang memetakan URL ke tindakan-tindakan dalam aplikasi. Ini memungkinkan untuk pengelolaan URL yang fleksibel dan pembuatan tautan antar halaman.

Beberapa contoh aplikasi yang menggunakan framework symfony:
1. Accenture
accenture 2. Trivago
trivago 3. Typeform
typeform

Kesimpulan
Symfony adalah framework lengkap yang dirancang untuk memaksimalkan pengembangan aplikasi berbasis web dengan memperkenalkan beberapa fitur yang dapat diandalkan untuk pemula.

Referensi:
[1] M. Laaziri, K. Benmoussa, S. Khoulji, K. M. Larbi, and A. El Yamami, “A comparative study of laravel and symfony PHP frameworks,” vol. 9, no. 1, pp. 704–712, 2019
[2] Website Symfony

Memahami Laminas MVC Framework for PHP

Hallo kreatif readers, pada kesempatan kali ini, kita akan menjelajahi Laminas MVC Framework.

Laminas MVC Framework

Laminas MVC Framework, sebagaimana dipresentasikan dalam buku “Laminas: MVC Framework” oleh Adam Omelak, merupakan alat yang kuat untuk pengembangan aplikasi web berbasis PHP. Framework ini menawarkan pendekatan yang modular, struktur MVC yang kuat, dan berbagai fitur canggih untuk memudahkan pengembangan aplikasi yang kuat dan scalable.

Apa itu Laminas MVC Framework?

Laminas (sebelumnya dikenal sebagai Zend Framework) adalah framework PHP yang memungkinkan pengembang untuk membangun aplikasi web yang canggih dan scalable. Berfokus pada modularitas, Laminas memungkinkan penggunaan komponen-komponennya secara terpisah, memberikan fleksibilitas tinggi dalam pengembangan.

Fitur Utama Laminas MVC Framework:

  1. Modularitas yang Tinggi

Laminas dirancang dengan pendekatan modular, memungkinkan pengembang untuk menggunakan komponen-komponennya secara independen. Ini mempermudah pengelolaan kode dan penggunaan hanya fitur-fitur yang diperlukan.

  1. Struktur MVC (Model-View-Controller)

Framework ini mengadopsi pola desain Model-View-Controller (MVC), yang memisahkan logika aplikasi, presentasi, dan manipulasi data. Ini meningkatkan keterbacaan kode dan memudahkan pemeliharaan.

  1. Dukungan untuk Middleware

Laminas memberikan dukungan untuk middleware, memungkinkan penanganan permintaan dan respons HTTP secara fleksibel. Middleware dapat digunakan untuk menambahkan fungsi-fungsi tambahan dalam alur pemrosesan.

  1. Manajemen Dependensi dengan Composer

Framework ini menggunakan Composer untuk manajemen dependensi dan autoload classes. Ini membuat pengelolaan dependensi menjadi lebih efisien dan memastikan ketergantungan hanya dimuat saat dibutuhkan.

  1. Dokumentasi yang Komprehensif

Laminas menyediakan dokumentasi yang komprehensif dan panduan pengembangan yang mendalam. Ini membantu pengembang, dari yang baru hingga berpengalaman, memahami konsep-konsep dan implementasi framework.

Kelebihan Laminas MVC Framework:

  1. Skalabilitas dan Keterbacaan Kode: Modularitas dan struktur MVC membuat Laminas cocok untuk proyek-proyek kecil hingga besar, meningkatkan skalabilitas dan keterbacaan kode.
  2. Fleksibilitas Penggunaan Komponen: Pengembang dapat menggunakan komponen-komponen Laminas secara terpisah, menambahkan ke fleksibilitas dan kemampuan untuk menyesuaikan aplikasi sesuai kebutuhan.
  3. Dukungan Keamanan Terintegrasi: Laminas memiliki fitur-fitur keamanan terintegrasi, membantu pengembang melindungi aplikasi dari serangan umum.
  4. Komunitas yang Aktif: Sebagai proyek open source, Laminas memiliki komunitas pengembang yang aktif. Ini berarti dukungan reguler, pembaruan, dan pertanyaan-pertanyaan yang dijawab.
Referensi: Laminas MVC Framework for PHP, Adam Omelak, Second Edition Tahun 2023.

PHP Framework Zend

Halo Kreatif Readers!! Kali ini aku mau sharing tentang salah satu framework PHP yaitu Zend. Selamat membaca….

Apa itu Zend Framework?

Zend Framework merupakan sebuah kerangka kerja yang dikembangkan menggunakan bahasa pemrograman PHP 5.x. Kerangka kerja ini telah diimplementasikan secara penuh dengan paradigma OOP (Object Oriented Programming) dan terdiri dari berbagai pustaka (library) yang memungkinkan pembangunan aplikasi berbasis web secara cepat dan efisien.

Saat ini, perkembangan aplikasi berbasis web mendominasi pasar perangkat lunak. Pelaku bisnis umumnya cenderung meninggalkan aplikasi berbasis desktop karena pertimbangan efektivitas. Aplikasi desktop biasanya hanya efektif digunakan dalam lingkup kerja terbatas, seperti intranet. Sebaliknya, aplikasi berbasis web menawarkan lingkup kerja yang tidak terbatas, membuatnya sangat efektif bagi pelaku bisnis dengan mobilitas kerja yang tinggi.

screenshot_5

 

Zend Framework memberikan alat yang kuat dan fleksibel bagi pengembang untuk membangun aplikasi berbasis web yang tangguh. Dengan pendekatan berorientasi objek dan dukungan penuh terhadap PHP 5.x, Zend Framework memberikan solusi yang dapat diandalkan untuk kebutuhan pengembangan aplikasi web modern. Oleh karena itu, banyak pelaku bisnis memilih Zend Framework sebagai fondasi untuk membangun aplikasi mereka, memanfaatkan keunggulan fitur dan fungsionalitas yang dimilikinya.

Arsitektur desainnya memungkinkan pengembang untuk menambahkan komponen-komponen secara individual, suatu konsep yang sering disebut sebagai “Use At Will design” atau desain yang dapat digunakan sesuai kebutuhan. Dengan fleksibilitas ini, pengembang dapat memanfaatkan komponen-komponen Zend Framework sesuai dengan kebutuhan spesifik aplikasi yang sedang dibangun, memberikan tingkat kontrol yang tinggi dalam proses pengembangan.

Fitur Framework Zend

  1. Object-Oriented (Berorientasi Objek): Zend Framework sepenuhnya berorientasi objek, yang berarti bahwa pendekatannya dalam membangun aplikasi web didasarkan pada konsep pemrograman berorientasi objek (OOP). Hal ini membantu dalam pengorganisasian dan strukturisasi kode.
  2. MVC Implementation (Implementasi MVC Tingkat Lanjut): Zend Framework mendukung implementasi Model-View-Controller (MVC) tingkat lanjut. Model-View-Controller adalah pola desain yang memisahkan logika aplikasi menjadi tiga komponen utama, mempermudah pengelolaan dan pengembangan aplikasi.
  3. Multi-database (Multi-database): Zend Framework menyediakan dukungan untuk berbagai jenis basis data, termasuk PostgreSQL, SQLite, dan lainnya. Ini memungkinkan pengembang memilih basis data yang sesuai dengan kebutuhan proyek.
  4. API (API Cloud Sederhana): Zend Framework dilengkapi dengan API cloud yang sederhana, memfasilitasi integrasi dengan layanan cloud dan pengembangan aplikasi berbasis awan.
  5. Session Management (Manajemen Sesi): Zend Framework menyediakan mekanisme untuk manajemen sesi, memungkinkan pengembang untuk melacak dan mempertahankan status sesi pengguna.
  6. Data Encryption (Enkripsi Data): Zend Framework mendukung enkripsi data, memberikan lapisan keamanan tambahan terhadap informasi sensitif yang diproses oleh aplikasi.
  7. URI (Perutean URI yang Fleksibel): Zend Framework menawarkan sistem perutean URI yang fleksibel, memudahkan penanganan permintaan dan respons URI dalam aplikasi web.
  8. Reusability (Penggunaan Kembali): Zend Framework mendukung penggunaan kembali kode, memungkinkan pengembang untuk membuat dan menggunakan komponen-komponen yang telah dibuat sebelumnya, meningkatkan efisiensi pengembangan.
  9. Loosely Coupled (Arsitektur Yang Digabungkan Secara Longgar): Arsitektur Zend yang digabungkan secara longgar memungkinkan pengembang untuk menggunakan komponen-komponen secara terpisah, tanpa ketergantungan yang kuat antara satu komponen dengan yang lain. Hal ini mendukung fleksibilitas dan modularitas dalam pengembangan aplikasi.

Kelebihan Framework Zend

  1. Membantu Praktik dan Pembuatan Program yang Lebih Baik: Kerangka kerja membantu pengembang dalam menerapkan praktik terbaik dan membangun program dengan pendekatan yang lebih baik, termasuk penggunaan pola desain yang sesuai.
  2. Kode Lebih Aman: Dengan menggunakan kerangka kerja, keamanan kode dapat ditingkatkan karena kerangka kerja umumnya mencakup praktik keamanan terbaik dan standar.
  3. Menghindari Kode Duplikat dan Redundan: Kerangka kerja membantu mengurangi atau menghindari duplikasi kode serta redundansi, sehingga meningkatkan efisiensi dan memudahkan pemeliharaan.
  4. Pengembangan Kode yang Konsisten dengan Lebih Sedikit Bug: Dengan panduan dan struktur yang telah ditetapkan oleh kerangka kerja, pengembang dapat mengembangkan kode dengan konsistensi, yang pada gilirannya mengurangi jumlah bug.
  5. Mudah Bekerja pada Teknologi Canggih: Kerangka kerja umumnya mendukung integrasi dengan teknologi terkini, memudahkan pengembang untuk bekerja pada proyek-proyek yang memanfaatkan teknologi canggih.
  6. Pembuatan Software Framework Sendiri atau Berkontribusi pada Tim dengan Sumber Terbuka: Pengembang dapat membuat kerangka kerja mereka sendiri atau berkontribusi pada proyek kerangka kerja tim dengan sumber terbuka, menciptakan peningkatan berkesinambungan dalam fungsionalitas.
  7. Pra-Dibangun dan Pra-Diuji: Beberapa segmen kode dan fungsionalitas dalam kerangka kerja biasanya telah dibangun dan diuji sebelumnya, meningkatkan keandalan dan ketahanan aplikasi.
  8. Uji dan Debugging Lebih Mudah: Kerangka kerja menyediakan alat bantu yang memudahkan uji dan debugging kode, bahkan bagi pengembang yang mungkin tidak akrab dengan setiap baris kode.

Demikianlah ringkasan tentang Zend Framework. Semoga informasi ini bermanfaat bagi  Kreatif Readers.

Referensi 
Judul Buku : Zend Framework 2.X Solusi Mempercepat Pengembangan Aplikasi    Berbasis Web dengan PHP5.x Framework
Penulis : Edison siregar
Tahun : 2015
Edisi : 1

 

Phalcon: Unique and Fastest PHP Framework

Halo, Kreatif Readers! Pada artikel ini, saya akan membahas salah satu Framework PHP, yaitu Phalcon. Sebelum kesana, mari kita mengenal apa itu framework.

Pada dasarnya, framework merupakan bentuk sederhana dari desain arsitektur sebuah bahasa pemrograman. Salah satu desain arsitektur yang diterapkan pada PHP Framework adalah MVC (Model, View, Controller). Tujuan dari arsitektur ini adalah untuk memisahkan antara pemodelan data dengan tampilan atau user interface website. Nantinya, kedua hal tersebut akan dihubungkan menggunakan Controller berisikan request dari user yang telah ditampung dalam sebuah function.

Phalcon sendiri merupakan salah satu framework PHP yang cukup unik. Mengutip dari situs resminya, Phalcon merupakan full-stack framework yang ditulis dalam bentuk PHP extension menggunakan bahasa C. Namun, developer tidak diharuskan memahami bahasa C untuk dapat menggunakan Phalcon, karena setiap baris codenya telah dikemas dalam PHP class untuk memudahkan implementasinya.

phalcon_framework_logo_square

Dalam penggunaanya, Phalcon telah menyediakan “starter pack” berupa installer yang berisikan struktur kode siap pakai untuk memudahkan developer memahami cara kerja Phalcon. Selain itu, telah tersedia pula eksternal code generator yang dapat meningkatkan efesiensi proses pengembangan.

Phalcon memiliki beberapa karakteristik, seperti:

  1. Semua komponen code ditulis dalam bahasa C
  2. Kompatibel dengan berbagai sistem operasi
  3. Memiliki performa tinggi dengan konsumsi penyimpanan server yang rendah
  4. Merupakan salah satu framework PHP tercepat
  5. Mendukung implementasi database menggunakan metode ORM (Object Relation Mapping)

Seperti yang dijanjikan pada situs resminya, bahwa Phalcon merupakan PHP Framework tercepat, berikut merupakan hasil studi komparasi antara Phalcon dengan beberapa framework lainnya, dengan menggunakan acuan jangka waktu eksekusi pada proses CRUD (Create, Read, Update, Delete).

screenshot_43Berdasarkan grafik tersebut, terbukti Phalcon lebih unggul dibanding PHP framework lainnya, dengan jangka waktu eksekusi sebesar 28-45 ms. Selain itu, studi juga membuktikan bahwa Phalcon merupakan salah satu framework dengan konsumsi penyimpanan server yang rendah. Dapat dilihat pada grafik perbandingan di bawah ini, terhitung Phalcon hanya mengkonsumsi sebesar 0.17 MB, jauh lebih rendah dibandingkan ketiga framework lain.

memory usage

Salah satu faktor yang mempengaruhi kecepatan dan efisiensi kinerja Phalcon adalah penggunaan bahasa C dalam penulisannya. Bahasa C merupakan compile language, dimana sistem dapat lebih mudah mengeksekusi setiap perintah yang dijalankan. Hal ini sangat berdampak pada efektifitas kinerja sistem dan efisiensi penggunaan memory. Berbeda dengan PHP yang merupakan interpreter language, dimana PHP dapat lebih mudah dimengerti penggunanya, namun diperlukan effort lebih bagi sistem untuk menerjemahkannya.

Dalam hal ini, Phalcon berhasil mengadaptasi bahasa C dan mengkombinasikannya dengan kemudahan penggunaan PHP dalam sebuah framework yang dapat dipertimbangakan dalam pengembangan sebuah website.

Referensi:
1. Phalcon.io
2. Analysis and Practical Application of PHP Frameworks in Development of Web Information Systems
3. Comparing Performance of Plain PHP and Four of Its Popular Frameworks