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 Show 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 tumpukanPerubahan besar dari Stack kamiNode. 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 NVMMengandalkan 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 Setelah diinstal kami dapat melakukannya
Lebih baik lagi, NVM bekerja di Linux, Mac dan Windows berkat nvm-windows Javascript pada tahun 2017Saat 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 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
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 BenangKomposer 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 JavaScriptKode akan berbicara sendiri. Berikut adalah contoh minimal API Berdasarkan
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 menyelamatkanKemampuan 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. PHP memiliki sistem tipe yang kuat, namun fleksibel
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 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 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 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() Visualisasikan keluaran layanan Anda dan dapat melacak metrik khususLebih baik lagi, sementara lingkup Supervisord terbatas pada pengelolaan proses, PM2 juga dapat mengganti beberapa skrip penerapan dengan file konfigurasi sederhana File konfigurasi yang memungkinkan untuk mendefinisikan dan menyebarkan proses Anda dengan mudahPM2 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. lingkunganPhing digunakan untuk tiga hal dalam proyek kami
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) Jadi kita bisa menyingkirkan Phing sepenuhnya dan memanggil perintah kita seperti ini benang menjalankan db-migrasi Gunakan editor Open Source yang bagusSaat 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 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 Lebih cantik beraksi. Ilustrasi oleh Scott SauberTidak 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
Kekurangan
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 |