Bagaimana cara menerapkan aplikasi PHP?

Penutup PHP Back4app

Artikel ini akan membahas PHP, salah satu bahasa skrip paling populer yang mendukung world wide web. Kita akan menjelajahi kelebihan, kekurangan, dan opsi penerapannya.

Di akhir artikel ini, Anda akan dapat melakukan bootstrap aplikasi PHP sederhana, melakukan dockerisasi, dan men-deploy-nya ke Back4app Container.

Ikhtisar PHP

PHP (kependekan dari “PHP: HyperText Processor”) adalah bahasa skrip untuk keperluan umum yang populer. Bahasa ini dibuat pada tahun 1993 oleh Rasmus Lerdorf dan kemudian dirilis pada tahun 1995.

PHP pada awalnya dirancang untuk pengembangan web, tetapi sekarang juga digunakan untuk skrip sisi server, skrip baris perintah, dan penulisan aplikasi desktop.

Hal yang hebat dari PHP adalah bahwa PHP dapat langsung disematkan ke dalam HTML. Tidak perlu menggunakan perintah-perintah yang panjang untuk menghasilkan HTML (seperti yang terlihat pada C atau Perl). Berikut ini adalah contoh singkatnya:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>My first PHP website</title>
    </head>
    <body>
        <?php
            $cool_scripting_language = "PHP";
            echo "$cool_scripting_language is a cool scripting language!";
        ?>
    </body>
</html>

PHP akan dieksekusi ketika pengguna meminta situs ini, dan hanya output HTML yang telah diproses yang akan dikembalikan. Dalam kasus kami, sebuah pesan yang mengatakan, “PHP adalah bahasa skrip yang keren!”. PHP dieksekusi di sisi server, bukan di browser (seperti JavaScript).

Masih diperdebatkan apakah PHP adalah bahasa yang sepenuhnya berorientasi objek. Meskipun demikian, PHP mendukung fitur-fitur berorientasi objek standar seperti ruang nama, kelas, dan objek.

Pada saat artikel ini ditulis, versi stabil terbaru dari PHP adalah 8.2, tetapi banyak aplikasi PHP yang masih menggunakan versi yang lebih lama.

Beberapa pengembang mengklaim bahwa PHP sedang sekarat, tetapi sebenarnya tidak demikian. Menurut survei W3Techs, PHP saat ini mendukung 77,4% dari semua situs web yang menggunakan bahasa pemrograman sisi server.

Bahasa skrip juga digunakan oleh situs web dengan lalu lintas tinggi seperti Facebook, Wikipedia, Mailchimp, berbagai perangkat lunak CMS, dan bahkan digunakan oleh YouTube di masa lalu.

Manfaat PHP

Kinerja yang baik

PHP lebih berkinerja tinggi daripada bahasa skrip sisi server lainnya seperti ASP.NET, JSP, dan Python. Beberapa tolok ukur menunjukkan bahwa PHP lebih cepat tiga kali lipat daripada Python.

PHP paling baik dalam menangani tugas-tugas yang berhubungan dengan web, seperti membuat halaman HTML, menangani pengiriman formulir, dan berinteraksi dengan database.

Sebaliknya, ada pilihan yang lebih optimal daripada PHP untuk tugas-tugas komputasi yang berat atau algoritme yang kompleks.

Lintas platform

PHP tidak bergantung pada platform. PHP dapat berjalan di berbagai platform, termasuk Windows, Linux, Unix, dan Mac. Selain itu, PHP kompatibel dengan hampir semua server web populer, seperti Apache HTTP, Caddy, Nginx, LiteSpeed, dan sebagainya.

Bahasa skrip yang populer ini juga dapat digunakan untuk mengembangkan aplikasi desktop berkat phpdesktop dari Czarek Tomczak. Anda bisa menganggap pustaka ini sebagai Electron tetapi untuk PHP. Aplikasi phpdesktop dapat berjalan di Windows dan Linux, tetapi tidak di Mac OS X (belum).

Dukungan Basis Data

Bahasa skrip ini mendukung berbagai macam basis data, termasuk basis data SQL dan NoSQL. Basis data yang paling populer untuk digunakan dengan PHP adalah MySQL(LAMP stack), tetapi tidak ada yang menghalangi Anda untuk menggunakan PostgreSQL, atau jenis basis data lainnya.

Anda dapat melihat semua lapisan abstraksi PHP dan ekstensi database khusus vendor di situs web resmi mereka.

Ekosistem yang Hidup

PHP sangat populer berkat ekosistemnya yang dinamis. Banyak framework PHP yang mengagumkan yang secara signifikan mempercepat proses pengembangan, menyederhanakan basis kode, dan memandu Anda untuk menulis kode yang lebih bersih dan terstandarisasi.

Kerangka kerja PHP yang paling populer pada saat artikel ini ditulis adalah:

Untuk kerangka kerja dan sumber daya yang lebih mengagumkan, lihat awesome-php di GitHub.

Ada juga banyak CMS yang menggunakan PHP, seperti WordPress, Joomla, Drupal, dan Magento.

Mudah Dipelajari

PHP adalah bahasa yang ramah bagi pemula dengan sintaks yang sederhana. Bahasa ini relatif mudah dipelajari jika Anda sudah terbiasa dengan dasar-dasar world wide web (WWW), HTML, CSS, dan JavaScript. Banyak pengembang yang dapat menulis PHP, tetapi hanya sedikit yang dapat menulis PHP yang dapat dipelihara yang mengikuti konvensi kode yang bersih.

Keterbatasan PHP

Alat Debugging Terbatas

PHP buruk dalam menangani kesalahan dan tidak memiliki alat debugging dibandingkan dengan bahasa pemrograman populer lainnya. Jika proyek Anda membutuhkan debugging tingkat lanjut, kemungkinan besar Anda harus menggunakan perangkat lunak pihak ketiga seperti Xdebug, Krumo, atau Kint.

Beberapa IDE populer seperti PhpStorm dan Visual Studio juga memiliki alat debugging PHP bawaan.

Diketik dengan longgar

Seperti yang telah disebutkan di atas, PHP adalah bahasa skrip, bukan bahasa pemrograman. Salah satu karakteristik yang paling umum dari bahasa skrip adalah bahwa bahasa ini diketik secara bebas.

Ini berarti tipe variabel tidak harus dideklarasikan secara eksplisit sebelum menggunakannya. Selain itu, tipe variabel juga dapat berubah kapan saja selama runtime.

Hal ini mengakibatkan aplikasi PHP menjadi lebih rentan terhadap kesalahan dan sulit untuk di-debug.

Kelemahan Keamanan

Selama bertahun-tahun, aplikasi PHP telah menjadi target berbagai serangan peretas. Hal ini terutama disebabkan oleh sifat sumber terbuka PHP dan biaya masuk yang rendah untuk pengembang baru.

Beberapa kerentanan PHP yang paling terkenal termasuk injeksi SQL, skrip lintas situs (XSS), pemalsuan permintaan lintas situs (CSRF), dan eksekusi kode jarak jauh (RCE).

Ingatlah bahwa kerentanan ini dapat dicegah dengan mengikuti praktik pengkodean yang aman. Pastikan untuk selalu membersihkan input dan jangan pernah mengeksekusi input yang diberikan pengguna.

PHP Vanilla sudah ketinggalan zaman

PHP Vanilla (yang berarti PHP tanpa library atau framework) bisa jadi sudah sangat ketinggalan zaman untuk membangun aplikasi modern. Untuk membangun aplikasi yang aman dengan cepat, Anda harus menggunakan framework.

Opsi Penerapan PHP

Aplikasi PHP dapat diterapkan ke berbagai platform. Model cloud yang paling umum untuk menerapkan aplikasi PHP adalah:

  1. Infrastruktur sebagai Layanan (IaaS),
  2. Platform sebagai Layanan (PaaS),
  3. Kontainer sebagai Layanan (CaaS).

Model cloud terbaik untuk menerapkan aplikasi PHP tidak ada. Pada akhirnya, pilihannya tergantung pada kebutuhan proyek Anda, anggaran, dan tingkat abstraksi yang diinginkan.

Biasanya, tim pengembang memilih PaaS atau CaaS karena lebih mudah dikelola dan tidak jauh lebih mahal daripada IaaS. Mari kita lihat beberapa vendor hosting PHP terbaik.

Back4app Containers

Back4app Containers adalah penawaran Containers as a Service (CaaS ) yang sangat baik dari Back4app. Platform ini memungkinkan pengembang untuk membangun, menskalakan, dan dengan cepat menyebarkan aplikasi dockerized.

Menerapkan aplikasi ke Back4app Containers semudah mengimpor repositori GitHub Anda dan mengklik tombol. Platform ini memiliki sistem integrasi dan penerapan berkelanjutan yang hebat, mendukung penerapan tanpa waktu henti, pelacakan penerapan waktu nyata, dan banyak lagi!

Manfaat lain dari Back4app Containers adalah tingkat gratisnya, yang sangat bagus untuk hosting aplikasi kecil. Seiring dengan meningkatnya skala aplikasi Anda, Anda bisa meningkatkan ke tingkat premium mengikuti paket harga yang sederhana dan dapat diprediksi.

Google Cloud Run

Google Cloud Run adalah platform Containers as a Service (CaaS) yang sepenuhnya otomatis untuk menerapkan dan menskalakan aplikasi dalam container. Platform ini mulai tersedia untuk umum pada tahun 2019 dan sejak saat itu telah mendapatkan banyak popularitas.

Cloud Run relatif mudah digunakan, terutama jika Anda sudah terbiasa dengan produk GCP lainnya. Beberapa manfaat dari Cloud Run termasuk sertifikat SSL gratis, integrasi yang baik dengan solusi GCP lainnya, dan penskalaan ke nol.

Pada saat artikel ini ditulis, Google menawarkan kredit gratis sebesar $300 untuk pengguna baru.

Heroku

Heroku adalah salah satu perintis solusi Platform sebagai Layanan (PaaS). Didirikan pada tahun 2007 dan tetap sangat populer hingga saat ini.

Platform ini menawarkan dukungan ekstensif untuk berbagai bahasa pemrograman, termasuk PHP, Java, Node.js, Go, Scala, dan Python. Platform ini memiliki UI yang apik dan ramah pengguna, memungkinkan skalabilitas yang tinggi, dan menyediakan banyak sekali pilihan pengaya.

Heroku dulunya menyediakan paket gratis dan instance PostgreSQL dan Redis gratis, tetapi mereka telah memutuskan untuk membatalkannya pada tahun 2022 karena masalah yang terkait dengan penipuan dan bot. Namun demikian, Heroku tetap menjadi platform yang sangat baik untuk menerapkan aplikasi.

AWS Elastic Beanstalk

AWS Elastic Beanstalk (EB) adalah solusi Platform sebagai Layanan (PaaS) yang hebat. Ini adalah platform yang matang dan teruji dengan baik yang didirikan pada tahun 2011. EB secara native mendukung Go, Java, Node.js, PHP, Python, Ruby, dan memungkinkan penggelaran aplikasi yang terdokumentasi.

Hal terbaik dari Elastic Beanstalk adalah Anda dapat menggabungkannya dengan solusi AWS lainnya, seperti AWS S3, AWS RDS, AWS CloudFront, dan sebagainya. AWS menawarkan tingkat gratis untuk pelanggan baru.

Proses Penerapan PHP

Pada bagian ini, kita akan melihat cara melakukan bootstrap dan men-deploy aplikasi web Laravel sederhana ke Back4app Containers.

Prasyarat

  • Pemahaman dasar tentang PHP.
  • Pemahaman dasar tentang Docker dan teknologi kontainerisasi.
  • Composer bersama dengan Node.js dan Docker yang terpasang di mesin lokal Anda.

Jika Anda tidak terbiasa dengan teknologi kontainerisasi, bacalah Apa itu kontainer?

Apa itu Laravel?

Logo Laravel

Laravel adalah framework PHP hebat yang memungkinkan Anda untuk membangun aplikasi menggunakan sintaksis yang ekspresif dan elegan dengan cepat. Hasilnya, Anda akan mendapatkan kode yang bersih dan ringkas.

Framework ini didasarkan pada pola arsitektur model-view-controller (MVC). Yang terbaik dari semuanya, Laravel sepenuhnya gratis dan bersumber terbuka.

Pada awalnya dirilis pada tahun 2011 dan saat ini merupakan salah satu framework PHP yang paling populer. Karena fleksibilitasnya, framework ini dapat digunakan untuk membangun semua jenis aplikasi web.

Keuntungan Laravel

  • Berkinerja & fleksibel.
  • Menyederhanakan pekerjaan dengan database (melalui Eloquent ORM).
  • Otentikasi & otorisasi bawaan.
  • Langkah-langkah keamanan terintegrasi (CSRF, XSS).

Beberapa alternatif Laravel termasuk Symfony, CodeIgniter, CakePHP, dan Laminas Project.

Buat Aplikasi

Langkah-langkah berikut ini mengharuskan Anda menginstal Composer. Jika Anda belum memilikinya, unduh dari situs web resminya.

Mulailah dengan membuat proyek Laravel baru melalui antarmuka baris perintah Composer:

$ composer create-project laravel/laravel sample-app

Jangan ragu untuk mengganti aplikasi-sampel dengan nama khusus.

Perintah ini akan membuat proyek Laravel baru dan struktur direktori default. Selain itu, perintah ini akan menginstal semua dependensi melalui instalasi komposer. Perintah ini akan memakan waktu paling lama tiga menit.

Setelah selesai, Anda akan melihat struktur direktori berikut ini:

sample-app/
├── app/                   contains the core code of your application
│   ├── Console
│   ├── Exceptions
│   ├── Http
│   ├── Models
│   └── Providers
├── bootstrap              is used to bootstrap the framework
├── config                 contains all your configuration files
├── database               contains database factories, migrations, seeders
├── public                 contains your index.php and static assets (JS, images, CSS)
├── resources              contains all your views and templates (along with raw assets)
├── routes                 is used to define all your application endpoints
├── storage                contains logs and other auto-generated stuff
├── tests                  can be utilized for automatic testing
└── vendor                 contains your Composer dependencies

Selanjutnya, jalankan server pengembangan melalui perintah berikut:

$ php artisan serve

INFO  Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server.

Terakhir, buka peramban web favorit Anda dan buka http://localhost:8000/. Anda akan melihat halaman indeks Laravel default.

Halaman Indeks Laravel

Memodifikasi Aplikasi

Pada bagian ini, kita akan sedikit memodifikasi aplikasi dengan mendaftarkan endpoint API baru.

Seperti yang disebutkan di bagian sebelumnya, semua rute didefinisikan dalam folder rute. Folder rute berisi file-file berikut ini:

routes/
├── api
├── channels
├── console
└── web

Direktori web mendefinisikan rute pengguna akhir, api untuk rute API, konsol untuk mendefinisikan perintah konsol, dan terakhir, saluran untuk saluran penyiaran acara.

Sebelum Laravel 5.3, hanya ada satu file routes yang terletak di app/Http/routes.php.

Navigasikan ke routes/api.php dan daftarkan endpoint API baru seperti ini:

<?php

// routes/api.php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

// new endpoint
Route::get('/', function () {
    return response()->json([
        'detail' => 'Back4app Containers rocks!',
    ]);
});

Bagus, itu saja.

Jalankan kembali server pengembangan (jika belum berjalan) dan arahkan ke http://localhost:8000/. Anda seharusnya masih dapat melihat halaman default Laravel, tetapi jika Anda menavigasi ke /api/, Anda akan melihat pesan berikut:

{
    "detail": "Back4app Containers rocks!"
}

Aplikasi Dockerize

Di bagian ini, kita akan mendokumentasi aplikasi Laravel kita menggunakan Dockerfile.

Dockerfile

Dockerfile adalah berkas teks biasa yang berisi semua instruksi yang harus dilakukan oleh Mesin Docker untuk membangun dan menjalankan citra Docker. Instruksi biasanya ditulis dengan huruf besar semua dan diikuti dengan sejumlah argumen. Contoh:

INSTRUCTION arg1 arg2 ... argn

Lanjutkan dan buatlah Dockerfile di root proyek dengan konten berikut:

FROM php:8.1-apache

# Set the working directory
WORKDIR /var/www/html

# Install the necessary libraries
RUN apt-get update && apt-get install -y \
    libonig-dev \
    libzip-dev

# Install PHP extensions
RUN docker-php-ext-install \
    mbstring \
    zip

# Copy over the Laravel project
COPY . .

# Install Composer along with the dependencies
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN composer install

# Change ownership of our applications
RUN chown -R www-data:www-data /var/www/html

# Copy over the .env file and generate the app key
COPY .env .env
RUN php artisan key:generate

# Expose port 80
EXPOSE 80

# Adjusting Apache configurations
RUN a2enmod rewrite
COPY apache/apache-config.conf /etc/apache2/sites-available/000-default.conf

Dockerfile ini menggunakan php:8.1-apache sebagai citra dasar, menginstal dependensi OS yang diperlukan, dan menyalin ke dalam proyek. Kemudian menginstal dependensi PHP melalui Composer, menghasilkan kunci Laravel, mengekspos port 80, dan akhirnya menyalin konfigurasi Apache.

Untuk mempelajari lebih lanjut tentang Dockerfile, lihat referensi Dockerfile.

.dockerignore

Kita dapat menggunakan file .dockerignore untuk mengurangi ukuran gambar. File ini bekerja mirip dengan file .gitignore. File ini memungkinkan kita untuk menghilangkan file dan direktori tertentu yang tidak ingin disertakan dalam gambar.

Buat berkas .dockerignore di root proyek dengan konten berikut:

/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.phpunit.result.cache
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode

Jangan ragu untuk memodifikasi file .dockerignore sesuai dengan kebutuhan Anda.

Membangun, Menjalankan, dan Menguji

Sebelum mencoba membangun citra, pastikan Anda telah menginstal Docker:

$ docker --version

Docker version 20.10.22, build 3a2c30b

Setelah Anda memverifikasi, Anda bisa membuat gambar:

$ docker build -t laravel-sample:1.0 .

Ikhtisar perintah:

  1. docker build digunakan untuk membangun citra.
  2. -t laravel-sample:1.0 menandai gambar (nama gambar biasanya memiliki struktur name:version ).
  3. . menentukan konteks build. Itu adalah akar proyek dalam kasus kita.

Berikutnya, gunakan gambar yang baru dibuat untuk memutar wadah:

$ docker run -p 80:80 --name laravel-sample-container -d laravel-sample:1.0

Ikhtisar perintah:

  1. docker run digunakan untuk menjalankan kontainer.
  2. -p 80:80 mengikat port 80 pada host ke 80 di kontainer.
  3. --name laravel-sample-container menentukan nama kontainer.
  4. -d menjalankan gambar dalam mode terpisah, yaitu, tanpa menempati terminal.
  5. laravel-sample:1.0 memberi tahu mesin Docker citra apa yang harus digunakan.

Jika Anda sekarang memeriksa kontainer yang sedang berjalan, Anda akan melihat laravel-sample-container:

$ docker ps

CONTAINER  IMAGE               COMMAND          CREATED  PORTS              
b0bfbd     laravel-sample:1.0  "docker-php..."  2s ago   0.0.0.0:80->80/tcp  laravel

Terakhir, periksa apakah Anda dapat melihat aplikasi ini dengan mengunjungi http://localhost/ di browser web favorit Anda.

Dorong ke GitHub

Untuk men-deploy aplikasi Anda ke Back4app Containers, Anda harus terlebih dahulu mengunggah kode sumber ke GitHub. Back4app Containers menggunakan sistem CI/CD yang secara otomatis men-deploy ketika Anda mengomit kode ke cabang tertentu.

Langkah-langkah berikut ini mengharuskan Anda memiliki akun GitHub (dan menginstal Git ).

Mulailah dengan membuka https://github.com dan membuat repositori baru:

GitHub Membuat Repositori

Selanjutnya, pilih nama yang sesuai dan biarkan yang lainnya sebagai default. Kemudian klik tombol “Buat repositori” untuk membuat repositori:

Dialog Pembuatan Repositori GitHub

Setelah repositori Anda dibuat, ambil URL jarak jauh:

URL Jarak Jauh GitHub

Sekarang navigasikan kembali ke proyek lokal Anda dan buka baris perintah. Untuk mendorong kode ke GitHub, pertama-tama Anda harus menginisialisasi repositori Git lokal melalui langkah berikut:

$ git init

Selanjutnya, VCS semua file dan buat komit baru:

$ git add .
$ git commit -m "init"

Terakhir, dorong kode ke remote:

$ git push origin master

Selesai! Jika Anda menyegarkan halaman repositori GitHub, Anda akan melihat bahwa semua file telah berhasil didorong ke repositori Git jarak jauh.

Menyebarkan Aplikasi

Untuk menerapkan aplikasi ke Back4app Containers, pertama-tama Anda harus masuk (atau mendaftar jika Anda belum memiliki akun). Anda kemudian akan diarahkan ke halaman dasbor aplikasi saat Anda masuk.

Kemudian gunakan tombol “Buat aplikasi baru” untuk memulai proses pembuatan aplikasi:

Back4app Buat Aplikasi

Pilih “Kontainer sebagai Layanan” karena kami menggunakan aplikasi dalam kontainer:

Back4app Buat Jenis Aplikasi

Selanjutnya, hubungkan GitHub Anda ke akun Back4app dan impor repositori yang telah kita buat di langkah sebelumnya.

Repositori Impor Wadah Back4app

Berikan nama khusus pada aplikasi Anda dan biarkan yang lainnya sebagai default.

Untuk membuat aplikasi, klik “Buat Aplikasi”. Back4app akan secara otomatis mengambil kode sumber dari GitHub dan memulai proses pembuatan gambar docker saat Anda mengkliknya. Setelah beberapa menit, status aplikasi akan berubah menjadi “Siap”.

Setelah itu, gunakan tautan di sebelah kiri untuk membuka halaman di browser Anda.

Wadah Back4app Berhasil Diterapkan

Itu dia!

Kesimpulan

Kesimpulannya, Anda telah belajar tentang PHP, kelebihan, kekurangan, dan opsi penerapannya. Anda sekarang tahu cara melakukan bootstrap dan men-deploy aplikasi Laravel ke Back4app.

Topik-topik yang kita bahas dalam tutorial ini hampir tidak menyentuh permukaan framework Laravel. Anda selalu dapat mempelajari lebih lanjut dengan melihat dokumentasi Laravel.

Kode sumber tersedia di repositori GitHub back4app-containers-php.

Langkah-langkah ke depan

PERTANYAAN YANG SERING DIAJUKAN

Apa itu PHP?

PHP adalah bahasa pemrograman skrip umum yang populer dan gratis. PHP dirancang untuk web tetapi juga dapat digunakan untuk skrip sisi server, perintah baris perintah, dan aplikasi desktop. PHP saat ini mendukung sekitar 80% web dan digunakan oleh banyak situs dengan lalu lintas tinggi seperti Facebook, Wikipedia, Slack, dan lainnya.

Apa keuntungan PHP?

– Kinerja yang baik
– Lintas platform
– Dukungan basis data
– Ekosistem yang dinamis
– Mudah dipelajari

Apa kekurangan PHP?

– Alat debugging terbatas
– Tipe data longgar
– Kelemahan keamanan
– PHP biasa sudah ketinggalan zaman

Bagaimana cara menyebarkan aplikasi PHP?

1. Tulis aplikasi PHP Anda.
2. Dockerize aplikasi Anda dan uji secara lokal.
3. Push kode sumber ke GitHub.
4. Buat akun Back4app Containers.
5. Impor repositori GitHub Anda dan klik deploy!


Leave a reply

Your email address will not be published.