Phalcon framework logo

Phalcon framework merupakan salah satu PHP extension framework tercepat yang ditulis menggunakan bahasa C. Memiliki arsitektur MVC seperti framework PHP populer lainnya seperti Laravel dan yii. Kecepatan eksekusinya mengalahkan beberapa framework terkenal seperti Laravel dan Yii.

image
Perbandingan phalcon framework dengan framework lain (https://blog.phalcon.io/post/benchmarking-phalcon)

Untuk memulai menggunakan phalcon framework kita perlu mengikuti langkah-langkah yang cukup rumit di https://docs.phalcon.io/3.4/en/installation. Disini kita akan mencoba untuk menjalankan phalcon di docker container.

Requirements

  • docker
  • docker-compose
  • internet connection (of course)

Jika anda belum menginstall docker di komputer anda, silahkan mengunjungi https://docs.docker.com/get-started/.

Step 1: Membuat folder project

Buat folder kemudian masuk kedalam folder tersebut

mkdir phalcon_docker && cd phalcon docker

Step 2: Setup dockerfile & docker-compose

Buat file bernama docker-compose.yml untuk membuat docker container dengan source code sebagai berikut:

#docker-compose.yml
version: '3'
services:
  app:
    container_name: app
    build: .
    working_dir: /var/www/html
    volumes:
      - ./:/var/www/html
    ports:
      - '8080:80'
    expose:
      - '8080'

Kemudian buat file Dockerfile untuk menyimpan konfigurasi image yang akan kita buat dengan isi sebagai berikut

# a PHP image bundle with nginx
FROM webdevops/php-nginx:7.3

ARG PSR_VERSION=0.7.0
ARG PHALCON_VERSION=3.4.5
ARG PHALCON_EXT_PATH=php7/64bits

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=compose

RUN set -xe && \
    # Download PSR, see https://github.com/jbboehr/php-psr
    curl -LO https://github.com/jbboehr/php-psr/archive/v${PSR_VERSION}.tar.gz && \
    tar xzf ${PWD}/v${PSR_VERSION}.tar.gz && \
    # Download Phalcon
    curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \
    tar xzf ${PWD}/v${PHALCON_VERSION}.tar.gz && \
    docker-php-ext-install -j $(getconf _NPROCESSORS_ONLN) \
        ${PWD}/php-psr-${PSR_VERSION} \
        ${PWD}/cphalcon-${PHALCON_VERSION}/build/${PHALCON_EXT_PATH} \
    && \
    # Remove all temp files
    rm -r \
        ${PWD}/v${PSR_VERSION}.tar.gz \
        ${PWD}/php-psr-${PSR_VERSION} \
        ${PWD}/v${PHALCON_VERSION}.tar.gz \
        ${PWD}/cphalcon-${PHALCON_VERSION} \
    && \
    php -m
    
ENV WEB_DOCUMENT_ROOT=/var/www/html/application/public

Disini kita akan menggunakan image php webdevops yang sudah satu paket dengan nginx, jadi kita tidak perlu melakukan konfigurasi webserver untuk phalcon nantinya.

#struktur project kita saat ini
phalcon_docker
    ├── docker-compose.yml
    └── Dockerfile

Step 3: Menjalankan Docker container

Setelah semua persiapan selesai, jalankan perintah berikut untuk menjalankan docker

docker-compose up -d

Docker-compose akan melakukan build dan menjalankan container kita

Container berisi php-phalcon sudah siap digunakan

Step 4: Membuat project phalcon

Kita akan menggunakan phalcon-devtools untuk membuat project phalcon, sebelum itu kita lakukan inisialisasi project composer terlebih dahulu dengan cara:

docker-compose exec app composer init

Kemudian masukan data yang diminta

Inisialisasi project composer

Composer akan membuat file bernama composer.json. Kemudian kita install phalcon-devtools menggunakan command berikut

docker-compose exec app composer require --dev phalcon/devtools:"^3.4"

Karena kita menggunakan phalcon versi 3.4.5 kita akan akan menggunakan phalcon versi 3.4 juga dengan menambahkan :"^3.4"

Langkah terakhir, Membuat project phalcon menggunakan perintah berikut

docker-compose exec app ./vendor/bin/phalcon project application simple

Perintah diatas akan membut folder bernama application yang berisi project phalcon kita

Membuat project phalcon menggunakan phalcon-devtools
#Struktur folder kita menjadi
phalcon_docker
    ├── application
    ├── composer.json
    ├── composer.lock
    ├── docker-compose.yml
    ├── Dockerfile
    └── vendor

Step 5: Akses aplikasi

Sesuai dengan konfigurasi di docker-compose.yml aplikasi dapat diakses melalui http://localhost:8080

Congratulations project phalcon berhasil dibuat.

Hasil project ini dapat dilihat di https://github.com/raisoturu/phalcon-docker-example.

Sekian tutorial Menjalankan phalcon framework menggunakan docker container, semoga bermanfaat.

Kamu merasa artikel ini menarik dan bermanfaat? Bagikan ke temanmu sekarang yuk!