Symfony CLI - Alat Pengembangan Lokal Baru

Pada bulan Desember 2018, pada konferensi Lisbon SymfonyCon, Fabien Potansier - pencipta kerangka kerja Symfony memperkenalkan symfony.phar tertentu - alat untuk membuat aplikasi Symfony dengan cepat berdasarkan templat proyek resmi: kerangka , kerangka situs web atau demo . Ini juga memungkinkan Anda untuk menjalankan server web lokal untuk pengembangan.


Kemudian alat itu ditulis ulang dalam bahasa Golang, yang memungkinkan untuk mengimplementasikan banyak fitur tambahan seperti dukungan untuk protokol https untuk server web lokal, integrasi yang erat dengan SymfonyCloud dan banyak lagi! Saya mengundang Anda, pembaca yang budiman, untuk berkenalan dengan alat ini secara lebih rinci, karena alat ini bekerja tidak hanya dalam konteks kerangka kerja Symfony.


Pada artikel ini, kita akan melihat alat dalam konteks pengembangan lokal dan tidak akan mempengaruhi integrasi dengan SymfonyCloud.


Pembuatan proyek


Untuk membuat proyek Symfony baru berdasarkan salah satu templat resmi, Anda perlu menjalankan perintah:


$ symfony new [--full | --demo] <path-to-project> 

Secara default, kerangka kerangka minimum digunakan. Untuk menginstal kerangka-situs web Anda harus menjalankan perintah dengan opsi --full . Oleh karena itu, untuk menginstal proyek demo , Anda harus menjalankan perintah dengan opsi --demo .


Di bawah tenda, symfony new mengeksekusi perintah composer create-project , kemudian menginisialisasi repositori Git baru dan segera membuat komit awal.


symfony baru


Server lokal


Untuk memulai server, jalankan perintah di root aplikasi


 $ symfony serve 

melayani symfony


itu akan menganalisis SAPI yang tersedia pada mesin yang digunakan dan memilih yang terbaik dari yang sudah ada, menggunakan prioritas berikut: PHP FPM tempat pertama, kemudian PHP CGI dan pada akhir PHP CLI. Daftar SAPI yang tersedia dapat dilihat dengan perintah:


 $ symfony local:php:list 

symfony local: php: list


Setelah itu, tim akan memulai server, yang akan tersedia di alamat 127.0.0.1 dan pilih port gratis mulai dari 8000 .


Secara default, server mulai interaktif. Kami segera melihat server dan log aplikasi, tetapi terminal kami diblokir. Server dapat dimulai dalam mode daemon. Untuk melakukan ini, tambahkan opsi -d saat menjalankan perintah symfony serve .


Log dapat dilihat dengan menjalankan perintah:


 $ symfony server:log 

Anda juga dapat melihat status server yang sedang berjalan menggunakan perintah:


 $ symfony server:status 

untuk menghentikan server yang berjalan, gunakan perintah:


 $ symfony server:stop 

UPD: Sebelumnya, kami menggunakan paket symfony / web-server-bundle untuk memulai server. Dengan munculnya Symfony CLI, paket ini menjadi sangat tidak relevan, karena hanya dapat memulai server menggunakan PHP CLI SAPI dan tidak mendukung HTTPS, nama domain, PHP FPM SAPI, dan banyak lagi.


Dukungan TLS


Beberapa layanan pihak ketiga atau perpustakaan mengharuskan Anda untuk mengirim permintaan menggunakan protokol HTTPS. Symfony CLI menyediakan kemampuan untuk mengkonfigurasi dukungan TLS dengan sangat mudah dengan menginstal komponen tambahan menggunakan perintah berikut:


 $ symfony server:ca:install 

server symfony: ca: install


kemudian restart browser Anda dan voila - dukungan TLS sudah terkonfigurasi! Mulai server dengan perintah symfony serve dan Anda dapat pergi ke situs menggunakan protokol HTTPS.


Saya tidak ingin membuka semua proyek di https://127.0.0.1:8000 atau https://localhost:8000 , tetapi bagaimana dengan Anda? Ini membawa ketidaknyamanan: jika beberapa proyek diluncurkan pada saat yang sama, Anda perlu mengingat port mana proyek bekerja; ketika server restart, port dapat berubah, dll.


Symfony CLI juga memecahkan masalah ini! Ini memberi kami server proxy yang dapat digunakan untuk membuat nama domain yang indah. Untuk melakukan ini, ikat nama domain yang diinginkan ke proyek kami menggunakan perintah:


 $ symfony proxy:domain:attach <domain-name> 

proxy symfony: domain: attach


dengan demikian, domain demo-project.com terikat ke direktori proyek. Selanjutnya, kita perlu memulai server proxy dengan perintah:


 $ symfony proxy:start 

proxy symfony: mulai


Kami meluncurkan server proxy dalam mode daemon dan tersedia di alamat kami http://127.0.0.1:7080 , kami dapat membukanya di browser:


server proxy symfony


di mana kita akan melihat daftar domain, jalur ke proyek di sistem file dan status server untuk setiap proyek. Dalam tangkapan layar ini, Anda dapat melihat bahwa semua server dalam status Stopped , artinya, mereka belum berjalan. Langkah selanjutnya kita perlu menambahkan server proxy ini dalam pengaturan OS


macOS Proxy Config


Ini menyelesaikan pengaturan server proxy, maka Anda harus memulai server dengan perintah symfony serve sudah dikenal. Selain alamat IP dengan port, kita akan melihat nama domain kita, yang bisa kita gunakan di browser! Postfix .wip ditambahkan ke semua nama domain.


melayani symfony


Artinya, dalam hal menggunakan aliran server proxy, peluncuran proyek sedikit berubah:


  1. Kami memulai server proxy
     $ symfony proxy:start 
  2. Kami memulai server untuk aplikasi
     $ symfony serve 

Untuk menyelesaikan pekerjaan dengan proyek, kami "mencerminkan" tindakan yang dijelaskan di atas:


  1. Kami menghentikan server
     $ symfony server:stop 
  2. Hentikan server proxy
     $ symfony proxy:stop 

Untuk menyederhanakan operasi ini, saya sarankan menggunakan utilitas GNU Make.


Pengalihan Versi PHP


Jika Anda menggunakan versi PHP yang berbeda pada proyek yang berbeda, Anda mungkin menghadapi masalah beralih antar versi. Akan lebih baik memiliki semacam alat otomatis untuk ini, bukan? CLI Symfony dapat mengatasi masalah ini! Anda hanya perlu membuat file .php-version di root proyek dan menentukan versi yang diinginkan sebagai konten.


 $ echo "7.2" > .php-version 

versi php


Seperti yang Anda lihat pada tangkapan layar di atas, Symfony CLI membaca file .php-versi dan memulai server menggunakan versi yang ditentukan dalam file ini.


Selain itu, Symfony CLI memberi kami pembungkus atas PHP CLI, yang juga memperhitungkan versi PHP yang ditentukan dalam file .php-version. Artinya, jika Anda perlu memanggil skrip konsol, misalnya bin/console , gunakan itu.


 $ symfony php 

symfony php


Untuk kenyamanan, Anda dapat membuat alias untuk perintah ini untuk menghemat waktu dan menghindari kesalahan dalam menulis perintah. Sebagai contoh, saya membuat alias sphp untuk saya sendiri:


 $ echo "alias sphp='symfony php'" >> ~/.bash_profile && source ~/.bash_profile 

Symfony CLI menyediakan pembungkus yang sama untuk Composer, sehingga Anda tidak akan memiliki masalah dengannya. Untuk kenyamanan, Anda dapat membuat alias untuk pembungkus ini. Saya memiliki scomposer ini:


 $ echo "alias scomposer='symfony composer'" >> ~/.bash_profile && source ~/.bash_profile 

Periksa paket yang rentan


Sebagai bonus, Symfony CLI menyediakan perintah untuk memeriksa paket komposer yang rentan di proyek Anda. Anda tidak lagi harus menginstal ketergantungan Symfony Security Checker di proyek. Juga, dokumentasi resmi menunjukkan bahwa versi yang dibangun ke dalam Symfony CLI berfungsi lebih baik karena fakta bahwa itu tidak membuat permintaan HTTP untuk API resmi. Anda dapat menjalankan tes dengan perintah:


 $ symfony security:check 

keamanan symfony: periksa


Kesimpulan


Symfony CLI adalah komponen yang cukup nyaman dari infrastruktur aplikasi lokal. Dia memiliki kemampuan untuk menjalankan server web dengan dukungan untuk protokol HTTPS, membuat nama domain, mengotomatiskan peralihan versi PHP untuk setiap proyek, dan memeriksa dependensi untuk kerentanan.


Dokumentasi resmi komponen dapat ditemukan di tautan ini .
Setiap pertanyaan dan masalah dapat dijelaskan dalam repositori symfony / cli resmi di GitHub.


Bagikan pengalaman Anda dengan alat ini di komentar.


Terima kasih atas perhatian anda!

Source: https://habr.com/ru/post/id451138/


All Articles