Menggunakan Komposer dengan WordPress

Diterbitkan: 2022-06-30

WordPress telah ada sejak tahun 2003 dan telah menjadi alat default bagi kebanyakan orang yang ingin memulai sebuah situs web. Meskipun telah berkembang jauh dari akarnya sebagai mesin blog, teknologi yang mendasarinya belum membuat lompatan yang sama seperti pengalaman pengguna.

Pengembangan WordPress masih berkisar pada banyak standar yang ada pada tahun 2003. Meskipun hal ini dapat membuatnya lebih mudah diakses oleh orang-orang karena pemahaman teknis yang lebih rendah yang diperlukan, ini juga berarti bahwa banyak sumber daya pengembangan baru tidak kompatibel dengan WordPress di luar kotak.

Hari ini, kita akan melihat salah satu alat baru yang disebut Komposer. Mari kita lihat bagaimana itu bisa masuk ke dalam alur kerja WordPress Anda dan diskusikan mengapa Anda mungkin ingin mencobanya.

Apa itu Komposer?

Setiap bit kode yang Anda tulis memiliki dependensi. Jika Anda menulis plugin WordPress, ketergantungan terbesar Anda adalah WordPress itu sendiri. Tanpa fungsi inti yang disediakan WordPress, kemungkinan plugin Anda tidak berguna sama sekali. Di luar WordPress itu sendiri, Anda mungkin memerlukan klien SOAP modern seperti nusoap untuk berinteraksi dengan API berbasis SOAP.

Di masa lalu, kebanyakan orang hanya menyalin repositori untuk nusoap ke direktori di plugin mereka dan kemudian memasukkan file yang diperlukan untuk menggunakan perpustakaan. Di sinilah Komposer dapat masuk dan menyederhanakan beberapa pengelolaan dependensi Anda.

Komposer adalah manajer ketergantungan. Ini dirancang khusus untuk membuatnya mudah untuk menginstal dan mengelola dependensi. Ini bisa menjadi sangat penting jika Anda bekerja dalam tim dan ingin memastikan bahwa setiap anggota tim menggunakan pustaka yang sama saat mereka melakukan pekerjaan pengembangan mereka.

Pada dasarnya, Composer adalah file JSON yang merinci dependensi yang telah Anda instal dan versi dependensi yang ingin Anda gunakan. Anda dapat melihat contoh dasar di bawah ini yang menyertakan dependensi nusoap.

{

"memerlukan": {

“econea/nusoap”: “^0.9.10”

}

}

Ketika saya menjalankan composer require econea/nusoap di plugin saya, ia akan menginstal nusoap untuk saya dan menguncinya ke versi yang ditentukan. Dalam hal ini, saya menggunakan 0.9.10 dan akan terus menggunakannya kecuali saya memberi tahu Komposer untuk meningkatkan ketergantungan.

Ini memiliki keuntungan lebih dari sekadar mengunduh dan menyertakan nusoap karena saya dapat menggunakan pembaruan komposer untuk memperbarui semua dependensi saya tanpa perlu melihat apakah ada pembaruan dan mengunduhnya secara manual ke dalam proyek saya. Komposer mengambil alih pengelolaan sumber daya pada tingkat ini.

Memulai dengan Komposer

Menginstal komposer cukup mudah.

Di Windows

Jika Anda menggunakan Windows, maka ada penginstal yang disediakan untuk menyederhanakan prosesnya. Ini akan menginstal Komposer versi terbaru dan membuatnya dapat diakses secara global untuk proyek Anda.

Linux/Unix/macOS

Pada salah satu platform ini, Anda memiliki beberapa langkah lagi untuk mendapatkan penyiapan Komposer. Untuk memulai, jalankan perintah yang diperlukan untuk mengunduh Komposer dan menyiapkannya.

php -r “copy('https://getcomposer.org/installer', 'composer-setup.php');”

php -r “if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f376181) {c7d } else { echo 'Pemasang rusak'; unlink('composer-setup.php'); } gema PHP_EOL;”

php composer-setup.php

php -r “unlink('composer-setup.php');”

Selanjutnya, Anda ingin menjalankan Composer secara global untuk pengembangan lokal sehingga kami perlu menyesuaikan penginstalan default untuk memastikan bahwa itu tersedia setiap kali kami ingin menggunakan Composer. Anda dapat memindahkan Komposer agar tersedia secara global dengan perintah berikut dijalankan dari direktori yang sama dengan yang baru saja Anda unduh Komposer.

mv composer.phar /usr/local/bin/composer

Mengupgrade Komposer

Di Windows dan macOS, semua yang perlu Anda lakukan untuk meningkatkan ke versi terbaru Komposer adalah menjalankan pembaruan otomatis komposer. Jika Anda menggunakan Linux/Unix maka Anda harus menjalankan Sudo apt update && upgrade agar sistem Anda memeriksa versi terbaru, lalu Anda dapat menjalankan composer self-update untuk mendapatkan versi terbaru.

Sekarang setelah Anda siap, mari kita lihat menggunakan Composer untuk menginstal WordPress.

Instal WordPress dengan Komposer

Bagaimana jika Anda ingin mengelola seluruh situs dengan Komposer? Pertama, Anda perlu memutuskan apakah WordPress adalah ketergantungan proyek atau inti proyek? Yup, sedikit memutar otak.

WordPress dapat dianggap sebagai ketergantungan proyek karena tujuan akhir bagi pelanggan Anda bukanlah untuk menginstal WordPress. Mereka menginginkan toko atau blog dan itu tergantung pada Anda menginstal WordPress. Ini adalah sikap yang diambil oleh proyek seperti Roots dengan penyiapan Bedrock WordPress berbasis Komposer yang disebut Bedrock.

Menggunakan Bedrock berarti Anda tidak perlu memberi tahu Composer tentang WPackagist karena sudah diatur. Di sinilah saya sarankan Anda memulai jika Anda ingin mengelola seluruh situs dengan Komposer.

Untuk menginstal Bedrock jalankan perintah berikut.

komposer membuat-proyek akar/batuan dasar

Ini akan memberi Anda struktur file berikut.

komposer.json

.env

konfigurasi

application.php

lingkungan

development.php

pementasan.php

produksi.php

penjual

web

aplikasi

mu-plugin

plugin

tema

upload

wp-config.php

index.php

wp

Ini sangat berbeda dari pengaturan WordPress standar. Untuk memulai, Anda memiliki file composer.json di root instalasi. Di sinilah Anda akan melihat konfigurasi Komposer Anda.

File .env Anda adalah tempat Anda dapat menyimpan konfigurasi database yang berbeda. Ini diperlukan karena situs lokal Anda dan situs langsung Anda akan memiliki kata sandi dan nama pengguna basis data yang berbeda. File wp-config.php default akan memahami variabel yang Anda masukkan ke dalam file .env Anda karena Bedrock menggunakan variabel tersebut alih-alih mengkodekan secara keras dalam informasi koneksi database.

File .env Anda harus diabaikan di repositori Git Anda. Saat Anda mengonfigurasi situs baru, Anda menambahkan .envfile baru ke dalamnya dengan informasi konfigurasi database yang diperlukan.

Ada beberapa variabel lain yang perlu Anda siapkan di sini untuk memulai Bedrock, yang semuanya dirinci dalam dokumentasinya.

Di bawah folder config terdapat konfigurasi default yang berbeda untuk lingkungan yang akan Anda gunakan. Dalam pengembangan, ini mengaktifkan pelaporan kesalahan, dan di lingkungan produksi Anda, ini memastikan bahwa pencatatan kesalahan tidak akan mengganggu kelancaran operasi situs Anda.

Dengan Bedrock sebagai basis, Anda sekarang dapat menggunakan Composer untuk menginstal plugin WordPress Anda melalui WPackagist.

WPackagist adalah cermin dari tema WordPress dan repositori plugin. Ini diperlukan karena secara default sebagian besar plugin dan tema tidak tersedia untuk diinstal oleh Composer. Mirror menambahkan file yang diperlukan untuk setiap plugin sehingga Composer dapat digunakan untuk mengelola plugin.

Jika Anda ingin menginstal WooCommerce di instalasi WordPress berbasis Bedrock Anda, Anda harus membutuhkan WooCommerce terlebih dahulu, composer memerlukan wpackagist-plugin/woocommerce, maka Anda perlu memberi tahu Composer untuk menginstal dependensi, composer install.

Sekarang Anda dapat pergi ke area admin dari instalasi WordPress Anda dan mengaktifkan WooCommerce dan membangun situs Anda. Untuk memperbarui WooCommerce ketika versi baru keluar, atau untuk memperbarui WordPress, Anda perlu menjalankan pembaruan komposer.

Di sinilah proyek berbasis Komposer dapat mengalami sedikit masalah. Jika Anda menjalankan pembaruan melalui admin WordPress maka Anda akan memiliki ketidakcocokan antara apa yang diharapkan Komposer dan apa yang telah diinstal WordPress. Jika Anda akan menggunakan Composer, tetap gunakan itu sebagai alat pembaruan Anda dan jangan bekerja melalui admin WordPress.

Kapan Anda Harus Menggunakan Komposer ?

Saya yakin banyak dari Anda bertanya mengapa Komposer adalah alat yang hebat untuk pengembangan WordPress. WordPress tidak dibangun dengan mempertimbangkan Composer, jadi untuk bekerja dengannya Anda harus melewati beberapa rintangan untuk membuatnya bekerja dengan baik.

Untuk pengembang plugin dan tema, ada kasus yang jelas bahwa Komposer dapat mempermudah menangani dependensi yang perlu Anda bawa dari ekosistem PHP yang lebih luas. Untuk pengembang WordPress, argumennya kurang jelas. Beberapa suka menggunakan Komposer untuk mengelola seluruh situs mereka seperti yang dilakukan Roots. Ini memungkinkan Anda memiliki lebih sedikit file yang dikelola oleh Git, tetapi itu tidak pernah tampak seperti kasus yang menarik bagi saya.

Kasus yang saya suka adalah Komposer dapat membuatnya mudah untuk memiliki dependensi yang berbeda untuk lingkungan yang berbeda. Anda kemudian dapat menggunakan proses penerapan untuk menerapkan dependensi tersebut di lingkungan Anda dan tidak perlu mengelolanya secara manual.

Sebagai pengembang, Anda juga perlu mempertimbangkan kebutuhan klien Anda. Jika mereka tidak memiliki tim pengembangan untuk mengelola situs dalam jangka panjang, maka mereka mungkin mengalami masalah dengan instalasi WordPress non-standar. Dalam beberapa kasus, host mereka mungkin memberi tahu mereka bahwa dukungan tidak tersedia karena mereka tidak menggunakan cara normal untuk menginstal dan menggunakan WordPress. Saat Anda melayani klien, Anda selalu perlu menyeimbangkan teknologi keren yang Anda gunakan dengan apa yang dapat ditangani klien dalam jangka panjang.

Untuk alasan ini saja, saya tidak menggunakan Komposer dalam proyek situs lengkap saya. Klien saya akan mengelolanya dari hari ke hari selama bertahun-tahun dan saya tidak ingin memasang penghalang tambahan. Kami berdua ingin situs mereka berjalan lancar selama bertahun-tahun yang akan datang.

Jika Anda ingin meningkatkan keterampilan PHP Anda dengan teknologi modern, maka Anda tentu harus melihat bagaimana Komposer dapat masuk ke dalam alur kerja WordPress Anda.