Bisakah saya menggunakan nodejs dengan php?

Saya telah menjadi pengembang PHP selama lebih dari 10 tahun dan saya baru saja pindah ke dunia full stack JS. Saya sudah terbiasa dengan JavaScript. Saya memiliki fase jQuery, lalu Aplikasi Angular dan akhirnya saya mulai menggunakan React

Ketika saya masih pemula di PHP, saya menyematkannya di file HTML. Kode saya berantakan. Oleh karena itu saya mulai menggunakan kerangka kerja untuk mencoba mengaturnya. ZF1 dan ZF2. Dengan berlalunya waktu, pendekatan API-pertama memberi saya server yang terdiri dari REST API yang dihasilkan dan beberapa ratus baris kode khusus

Karena hanya sebagian kecil dari proyek kami yang menggunakan PHP, muncul pertanyaan;

Saya akan menyajikan Anda dalam artikel ini sebagian besar perjalanan saya di sisi server dari PHP ke Node. js, dan tidak akan membahas tentang Webpack, React, dan teknologi frontend JS lainnya

Evolusi tumpukan

Bisakah saya menggunakan nodejs dengan php?
Perubahan besar dari Stack kami

Node. js adalah komponen utama tumpukan baru kami. Itu mengeksekusi program JavaScript dengan kecepatan tinggi

Itu melakukan tugasnya dengan sangat baik, sehingga banyak alat yang sebelumnya ditulis dalam bahasa tingkat rendah sekarang memiliki rekan mereka di JavaScript. Menginstal program asli sangat membosankan sehingga kami harus menggunakan Ansible untuk dapat menerapkan tumpukan kami. Karena alat pilihan baru kami sekarang hanya bergantung pada Node. js, satu-satunya hal yang harus kita instal sendiri di server adalah NVM (Node Version Manager). alat yang didedikasikan untuk menginstal Node. js

Cara menginstal Node. js dengan benar dengan NVM

Mengandalkan manajer paket OS atau menginstal Node secara manual. js dengan cepat membawa kami ke banyak masalah saat kami mencoba beralih versi. Jadi kami menggunakan NVM

Sangat mudah untuk mengaturnya

Bisakah saya menggunakan nodejs dengan php?

Setelah diinstal kami dapat melakukannya

  • Instal Node yang berbeda. js versi pada satu sistem dengan satu perintah
  • Beralih dengan mulus di antara Node tersebut. versi js

Lebih baik lagi, NVM bekerja di Linux, Mac dan Windows berkat nvm-windows

Javascript pada tahun 2017

Saat mulai belajar JavaScript selama studi saya, itu dilihat sebagai bahasa sampah, “sayangnya diperlukan” untuk membuat situs web menjadi dinamis. Jadi saya tidak pernah meluangkan waktu untuk mempelajarinya dengan benar. Saya kebanyakan belajar tentang JavaScript dari posting blog dan jawaban stack-overflow. Saya menyesalinya

Bisakah saya menggunakan nodejs dengan php?
Istirahat dan RTFM

Saya belum siap untuk mulai menggunakan alat atau kerangka JavaScript modern. JavaScript di tahun 2017 adalah bahasa yang sangat berbeda, dengan fitur-fitur modern seperti

  • Kelas
  • Janji (sekarang bawaan dalam bahasa)
  • Operator perusak dan penyebaran
  • Modul dan pemuat modul
  • Peta / Set dan versi lemahnya
  • Asinkron / Menunggu

Jadi butuh waktu untuk mempelajari banyak materi untuk mempelajari Javascript dengan cara yang benar. Keluarga Babelj. Situs web .io memberi saya gambaran terbaik tentang apa itu pemrograman dalam JavaScript saat ini

Dari Komposer ke Benang

Komposer adalah alat yang sangat bagus tetapi lambat. NPM memiliki masalah yang sama, jadi kami memilih Yarn sebagai gantinya. Ini adalah alternatif yang lebih cepat untuk NPM

Pada proyek terakhir saya, kami memiliki sekitar seratus dependensi. Di antara tim kami yang terdiri dari 10 pengembang, kami memiliki setidaknya 2 modifikasi folder node_modules per hari

(10 dev + 3 env) * 2 pemasangan/hari * 60 hari * 3 mnt/pemasangan = 78 jam

Memang, dua minggu dihabiskan untuk melihat loader dan membaca Reddit. 3 menit cukup lama untuk menambah biaya proyek tetapi terlalu pendek untuk beralih ke tugas pengembangan lainnya

Dengan menurunkan waktu penginstalan dari 3 menit menjadi 1 menit dengan Yarn, kami menghemat 46 jam fokus. Itu bagus jika Anda bertanya kepada saya

Menghasilkan API Dalam JavaScript

Kode akan berbicara sendiri. Berikut adalah contoh minimal API Berdasarkan

  • Express, JavaScript ringan yang setara dengan Zend Framework 2 / Symfony
Bisakah saya menggunakan nodejs dengan php?

Dengan beberapa baris kode, kami mendapatkan REST API yang dapat dikonfigurasi dan diperpanjang

Setelah menghasilkan lebih dari 50 titik akhir API dengan Apigility, kami yakin bahwa membuat titik akhir REST dapat dilakukan DAN efisien

Epilog menghasilkan 10 titik akhir kami tanpa masalah. Kami dapat memasukkan beberapa kode khusus di alur kerja default untuk menangani aturan yang rumit, seperti hak pengguna. Apa yang tidak dapat dihasilkan telah dikembangkan sebagai titik akhir Express RPC sederhana dengan bantuan Sequelize

Memang benar bahwa Zend Framework 2 memiliki lebih banyak fitur daripada Express. Tapi Express elegan, ramping, dan cukup untuk semua kebutuhan kita. Kami tidak melewatkan apa pun

Aku merindukan tipeku. Mengalir untuk menyelamatkan

Kemampuan untuk menambahkan masukan dan mengembalikan petunjuk jenis ke skrip PHP kami, hanya jika diperlukan, adalah salah satu fitur yang paling saya sukai dalam bahasa ini.

Bisakah saya menggunakan nodejs dengan php?
PHP memiliki sistem tipe yang kuat, namun fleksibel


Selama bertahun-tahun saya berpikir bahwa tidak ada cara untuk mendapatkan dukungan yang sama untuk tipe tanpa berkomitmen untuk berpindah ke TypeScript

saya salah

Saya menemukan Flow, juga dikenal sebagai Flow-type, dan mulai menambahkan tipe ke file JavaScript saya dengan mudah

Flow adalah alat yang mudah dipasang

Bisakah saya menggunakan nodejs dengan php?

Ini adalah keikutsertaan yang mudah, kami hanya perlu menambahkan satu baris di bagian atas file yang ingin kami lacak

/* @aliran */ atau // @aliran

Kemudian, perintah "pemeriksaan aliran" memberikan laporan lengkap berdasarkan jenis yang disimpulkan

Jika proyek Anda menggunakan transpiler seperti Babel, aturan baru dapat ditambahkan untuk menangani petunjuk tipe Flow di dalam kode JavaScript seperti di PHP

Bisakah saya menggunakan nodejs dengan php?

Bagaimana jika server saya mogok?

Dengan PHP, skrip yang mogok berarti permintaan tidak dilayani. Dengan Node. js, jika server crash, website down. Jadi kami harus mengelola proses kami

Kami beralih dari Supervisord ke pesaing keren yang ditulis dalam JavaScript

❤ PM2 (juga dikenal sebagai Manajer Proses 2) ❤

Dengan banyak hati karena ini adalah pilihan favorit saya dari artikel ini

Selain memiliki keuntungan untuk dipasang melalui Benang, PM2 juga memiliki kelebihan lainnya. Ini mendukung semua fitur pemantauan Supervisord dan melakukan lebih banyak lagi. Ini melacak beban dan memori dari setiap proses dan dapat dikonfigurasi untuk memuat ulang ketika kode mereka berubah

Bisakah saya menggunakan nodejs dengan php?
Satu perintah, "daftar pm2", menampilkan ikhtisar singkat dari proses yang dikelola

“pm2 monit” akan memberikan gambaran rinci tentang apa yang terjadi pada setiap proses secara real time. Selain itu, masuk terasa lebih mudah karena kami, secara default, dapat menggunakan konsol asli. catatan()/. memperingatkan()/. kesalahan()

Bisakah saya menggunakan nodejs dengan php?
Visualisasikan keluaran layanan Anda dan dapat melacak metrik khusus

Lebih baik lagi, sementara lingkup Supervisord terbatas pada pengelolaan proses, PM2 juga dapat mengganti beberapa skrip penerapan dengan file konfigurasi sederhana

Bisakah saya menggunakan nodejs dengan php?
File konfigurasi yang memungkinkan untuk mendefinisikan dan menyebarkan proses Anda dengan mudah

PM2 bagi saya adalah salah satu manfaat terbesar dari pindah ke tumpukan penuh JavaScript. Namun kita dapat menggunakannya dengan bahasa apa pun, hanya saja tidak terintegrasi

Konfigurasikan proyek Anda dengan. lingkungan

Phing digunakan untuk tiga hal dalam proyek kami

  • Mengonfigurasi proyek
  • Pembuatan skrip
  • Menyimpan perintah yang berguna

Di dunia JavaScript, bagian konfigurasi dapat ditangani oleh a. env, dengan perpustakaan DotEnv yang hebat. Ini memungkinkan kita untuk menggunakan variabel lingkungan untuk mengonfigurasi aplikasi kita. Ini adalah praktik yang baik dari metodologi Aplikasi Dua Belas Faktor, referensi yang kami gunakan setiap hari

Bagian skrip dari Phing tidak lagi layak untuk digunakan karena semua skrip kami, baik terkait dengan konfigurasi perangkat lunak di luar dunia PHP, seperti Supervisord, yang tidak kami miliki lagi atau dapat dibuat sebagai skrip shell independen dalam beberapa

Pada akhirnya, satu-satunya peran yang akan dipenuhi Phing adalah menyimpan perintah dan mengalikannya. Dan ini ditangani dengan luar biasa oleh Yarn (atau NPM)

Bisakah saya menggunakan nodejs dengan php?

Jadi kita bisa menyingkirkan Phing sepenuhnya dan memanggil perintah kita seperti ini

benang menjalankan db-migrasi

Gunakan editor Open Source yang bagus

Saat mengembangkan di PHP, saya memutuskan untuk menggunakan PhpStorm, IDE komersial, karena yang gratis terasa lambat dan kekurangan plugin

Di JavaScript, ada lebih banyak pilihan yang valid. Tujuan kami adalah menggunakan VsCode, editor yang dibuat dalam JavaScript yang sangat didukung oleh komunitas dan Microsoft

Bisakah saya menggunakan nodejs dengan php?
Logo VsCode

Sejauh ini, kami memiliki pengalaman hebat menggunakan VsCode. Cepat, memiliki mesin pelengkapan otomatis yang mengagumkan, dan memiliki komunitas yang hebat

Kemampuan untuk menentukan plugin mana yang digunakan pada proyek dan untuk berbagi konfigurasinya luar biasa. Siapa saja dapat, dalam satu klik, langsung mulai membuat kode dengan semua plugin yang telah dikonfigurasi sebelumnya

Singkirkan linting manual dengan Prettier

Di PHP kami memiliki sesuatu yang luar biasa. PSR. Standar tersebut sangat berguna untuk menentukan bagaimana kode harus ditulis

Kami mengonfigurasi IDE kami untuk mengikuti PSR1&2. Karena tidak ada fitur koreksi otomatis, semua orang harus menerapkannya. Itu bukan kesuksesan besar

Prettier datang untuk menyelamatkan JavaScript. Prettier adalah pemformat kode berpendirian yang menghapus semua gaya asli dan memastikan bahwa semua kode yang dihasilkan sesuai dengan gaya yang konsisten setiap kali Anda menyimpan file

Bisakah saya menggunakan nodejs dengan php?
Lebih cantik beraksi. Ilustrasi oleh Scott Sauber

Tidak ada lagi perdebatan, tidak ada lagi pelatihan, tidak ada lagi waktu sia-sia yang dihabiskan untuk menggabungkan modifikasi gaya saja

Semua orang di tim menggunakannya dan MENYUKAINYA. Mengkodekan gaya minimum yang ketat sementara kami membiarkan Prettier mengurus detailnya sungguh luar biasa

Kesimpulan

Bisakah saya menggunakan nodejs dengan php?


Manfaat

  • Tumpukan kami lebih mudah dipasang dan digunakan
  • Kami tidak perlu beralih konteks antar bahasa lagi
  • Kami tidak lagi mengandalkan skrip pemasangan yang rumit

Kekurangan

  • Diperlukan banyak penelitian untuk membuat tumpukan yang sesuai dengan kebutuhan kita
  • Kami harus mengadakan banyak pelatihan untuk mempelajari cara membuat kode di Javascript pada tahun 2017

Kami dapat dengan cepat menghasilkan server API seperti yang biasa kami lakukan di PHP. Saya tidak merasa ingin meninggalkan apa pun selama transisi, semua alat yang kami gunakan setara atau lebih baik dari sebelumnya

Kami ingin Anda terjun dan berhasil dalam transisi ini. Jangan ragu untuk menghubungi kami jika Anda menginginkan detail lebih lanjut atau mengalami masalah dengan langkah apa pun

Apakah Node JS bekerja dengan PHP?

Seperti yang kami katakan sebelumnya, ini adalah bagian dari LAMP tumpukan sumber terbuka yang populer (Linux, Apache, MySQL, dan PHP). Dengan demikian, database NoSQL seperti MongoDB juga dapat digunakan dengan PHP. Simpul. js bekerja dengan mulus dan sempurna dengan database NoSQL seperti CouchDB dan MongoDB, serta database grafik seperti Neo4j .

Bagaimana cara menggunakan kode Node JS di PHP?

Menjalankan secara lokal program PHP dari browser dengan Node. .
Kami memulai simpul dengan skrip server. simpul runphp. js
Kami mengetik URL lokal skrip di browser. .
Node meluncurkan eksekusi skrip dengan runner. .
Script menampilkan hasil dengan perintah echo
Hasilnya dikirim ke halaman HTML baru oleh Node

Mengapa menggunakan Node JS melalui PHP?

Node. js digerakkan oleh peristiwa dan tidak memblokir jadi, kecepatan (kinerja) sangat tinggi dan ini adalah keuntungan utama menggunakannya. Node. js dapat menangani permintaan bersamaan lebih dari teknologi web lainnya karena sifatnya yang digerakkan oleh peristiwa