Framework pada dasarnya terdiri dari elemen kode yang memandu proses pengembangan aplikasi dan mengoptimalkannya. Karena itu, framework terkadang disalahartikan sebagai library. Namun keduanya adalah konsep berbeda yang juga punya tujuan berbeda.
Framework menentukan struktur yang Anda gunakan untuk mengembangkan software. Jadi, sejak awal kode Anda harus mengikuti standar yang sudah ditetapkan oleh framework.
Di sisi lain, library adalah resource yang bisa Anda gunakan selama proses pengembangan, menyediakan elemen untuk menyelesaikan satu tahap pengembangan atau mengoptimalkannya.
Hal ini terkait dengan konsep Inversion of Control (IoC), di mana ketika suatu library digunakan, kode akan membuat permintaan ke library tersebut. Artinya, kontrol sepenuhnya ada pada kode, lalu library menanggapi fungsi yang diminta.
Nah, kebalikannya berlaku pada framework. Coding tidak lagi mengontrol proses, melainkan framework karena berperan untuk “memanggil” kode yang akan merespons persyaratan yang ditetapkan framework.
Contoh praktisnya seperti ini: misalnya Anda menggunakan fungsi curl, yang merupakan libary PHP. Saat Anda menggunakan salah satu fungsi curl, kode PHP memanggil fungsi tertentu dalam library yang dimaksud. Di sini, kode PHP “memanggil” fungsi curl di library.
Sekarang, misalnya Anda menggunakan framework PHP seperti Laravel. Relasi kontrol tersebut akan dibalik, karena frameworklah yang “memanggil” kode yang tertulis di dalamnya.
Penting untuk diingat bahwa dalam sebuah framework mungkin ada satu atau lebih library. Bagaimanapun, library merupakan salah satu fitur canggih yang ada dalam framework.