Symlex bertujuan untuk menyederhanakan pengembangan web Agile dengan menyediakan sistem kerja yang mempromosikan praktik terbaik dengan contoh:
Sejak rilis awalnya pada tahun 2014, telah terbukti sangat cocok untuk aplikasi microservices, CLI, dan halaman satu halaman dengan cepat. Muncul lengkap dengan contoh kerja dari pengujian ke formulir dan abstraksi basis data. Cukup hapus apa yang tidak Anda butuhkan.
Kernel kecil dan hanya membuat wadah layanan untuk bootstrap aplikasi Anda dalam konteksnya. Menggunakan satu wadah untuk konfigurasi dan injeksi ketergantungan mengurangi kompleksitas dan menyebabkan peningkatan kinerja dibandingkan dengan kerangka kerja lainnya. Ini juga mencegah pengembang untuk memasang bundel tanpa berpikir tanpa memahaminya. Hasilnya kurang kembung dan lebih sederhana, lebih dapat dipelihara dan dapat diuji kode yang mendasar untuk pengembangan yang gesit.
Kelas polos digunakan sedapat mungkin untuk menghindari penguncian vendor dan mengaktifkan kembali kode independen kerangka kerja. Lihat tradeoffs.md.
Anda dapat menggabungkan backend berbasis PHP dengan pustaka JavaScript atau klien REST. Boilerplate front-end ada untuk kenyamanan Anda dan membuat Anda langsung di jalur untuk membangun aplikasi satu halaman yang mengesankan dengan webpack dan vuetify, lihat demo.symlex.org. Contoh yang berfungsi untuk aplikasi baris perintah juga disertakan.
Dokumentasi kerangka kerja lengkap kami dapat ditemukan di docs.symlex.org. Tuzi Liu memelihara terjemahan bahasa Mandarin untuk kita.
Catatan: https://github.com/symlex/symlex-core berisi kernel dan router sebagai komponen yang dapat digunakan kembali.
Sebelum Anda mulai, pastikan Anda memiliki PHP 7.3+, Komposer dan Docker yang diinstal pada sistem Anda (Howto untuk Mac OS X). Jalankan get-composer.sh untuk menginstal composer secara lokal di Linux. Alih -alih menggunakan Docker, Anda dapat mengatur lingkungan runtime Anda sendiri berdasarkan DockerFile yang ada. Selain itu, Anda akan memerlukan database plus nodeJs dan NPM untuk membangun frontend.
Langkah 1: Jalankan composer untuk membuat proyek Symlex baru:
composer create-project symlex/symlex myapp
Komposer akan meminta nilai konfigurasi untuk menghasilkan app/config/parameters.yml untuk Anda.
Pastikan storage/cache dapat ditulis sehingga file cache dapat dibuat oleh aplikasi.
Langkah 2: Mulai Roadrunner dan Mariadb menggunakan docker-compose :
cd myapp
docker-compose up
Catatan: Konfigurasi ini hanya untuk tujuan pengujian dan pengembangan, lihat komentar di Docker-compose.yml untuk detailnya. Anda mungkin perlu mengubahnya jika Anda menjalankan Docker dengan pengguna yang berbeda untuk alasan keamanan. Pada OS X, rilis Docker saat ini sangat lambat dalam mengeksekusi PHP dari sistem file host. docker-compose up -d menjalankan Docker di latar belakang, tetapi Anda tidak akan melihat pesan log yang bermanfaat dalam kasus ini.
Langkah 3: Biarkan inisialisasi database dan buat komponen front-end untuk Anda:
make terminal
make all database
Untuk memverifikasi semuanya berfungsi, jalankan make test .
Catatan: Anda juga dapat menggunakan pendekatan ini untuk menjalankan perintah CLI lainnya nanti. Make harus diinstal sebelumnya di lingkungan pengembangan UNIX yang khas-jika tidak, Anda mungkin harus mendapatkannya terlebih dahulu dengan menginstal alat baris perintah XCODE pada OS X melalui xcode-select --install atau dengan menambahkan build-base atau paket build-essential di Linux. Makefile berisi daftar semua target.
Setelah instalasi yang berhasil, buka situs di http: // localhost: 8081/dan masuk sebagai [email protected] menggunakan kata sandi passwd .
File YAML Terletak di app/config Configure App Berdasarkan Parameter dan Layanan. File konfigurasi utama adalah app/config/web.yml dan app/config/console.yml .
Jika Anda menambahkan localhost-debug ke /etc/hosts Anda dan mengakses situs dengan itu, itu akan memuat dalam mode debug (Anda akan melihat jejak tumpukan dan informasi debug lainnya pada halaman kesalahan).
Antarmuka pengguna Mailhog tersedia di http: // localhost: 8025/. Ini dapat digunakan untuk menerima dan melihat surat secara otomatis dikirim oleh sistem, misalnya ketika pengguna baru dibuat.
Jika Anda ingin membangun aplikasi yang lebih ringan, lihat contoh kami yang lain:
Dokumentasi Lengkap: https://docs.symlex.org/en/latest/framework/
Symlex sekarang termasuk RoadRunner - server aplikasi PHP berkinerja tinggi - sebagai alternatif untuk Nginx. Ini akan diunduh secara otomatis saat Anda membangun gambar Docker.
Instruksi instalasi kami untuk Symlex> = 4.4.0 tidak akan berfungsi untuk rilis sebelumnya karena mereka masih menggunakan NGINX dan PHP-FPM. Alih -alih web dan php , sekarang ada satu layanan app tunggal yang ditenagai oleh Roadrunner. Jika Anda lebih suka NginX, Anda dapat menggunakan rilis lama atau menyalin konfigurasi sebelumnya ke rilis baru. Beberapa contoh aplikasi kami menggunakan Nginx juga.
Symlex dikelola oleh Michael Mayer dan bertujuan untuk menyederhanakan pengembangan web yang gesit dengan menyediakan sistem kerja yang mempromosikan praktik terbaik dengan contoh. Michael merilis kerangka kerja PHP pertamanya pada tahun 2001 dan telah bekerja dengan berbagai vendor kerangka kerja utama di masa lalu. Membangun Ini tidak akan mungkin terjadi tanpa banyak pekerjaan sebelumnya oleh pengembang lain. Terima kasih kepada mereka dan semua orang yang berkontribusi!
Pilihan adalah musuh produktivitas. Dengan kata lain, jika solusi Anda melakukan segalanya, dan tidak memiliki pendapat tentang apa pun, maka itu tidak menyelesaikan apa pun. - Asim Aslam
Jangan ragu untuk mengirim email ke [email protected] jika Anda memiliki pertanyaan, memerlukan dukungan komersial atau hanya ingin menyapa. Kami menyambut kontribusi apa pun. Jika Anda memiliki bug atau ide, baca panduan kami sebelum membuka masalah.
Jelas bahwa kinerja kerangka kerja PHP terutama tergantung pada baris kode yang harus dieksekusi untuk setiap permintaan. Sementara Symlex dirancang agar sederhana dan ramping, kinerja yang baik adalah produk sampingan yang sangat penting dari pendekatan ini.
Kode terbaik adalah tidak ada kode. Di mana tidak ada kode, tidak ada bug. Tidak ada API untuk dipelajari. Tidak ada UI yang canggung. Refaktor terbaik adalah penghapusan. - Eric Elliott
Seperti yang diterbitkan oleh PhpBenchMarks.com, permintaan REST lebih dari 40% lebih cepat dibandingkan dengan kerangka PHP umum lainnya:
Perhatikan bahwa waktu respons ini diukur dalam mode produksi yang dioptimalkan sepenuhnya pada perangkat keras server cepat dengan hanya 5 permintaan bersamaan. Dalam praktiknya, perbedaan mungkin jauh lebih besar dalam hal waktu absolut. Konsumsi memori harus dipertimbangkan juga:
Mengapa Anda harus peduli? Pertama, pengguna Anda akan menyukainya. Sebagai aturan praktis, 100 ms adalah tentang batas untuk membuat mereka merasa bahwa sistem bereaksi secara instan, yang berarti bahwa tidak diperlukan umpan balik khusus kecuali untuk menampilkan hasilnya. Total waktu respons juga mencakup jaringan (~ 25 ms), browser dan overhead lainnya, yang hanya meninggalkan sebagian kecil dari 100 ms untuk mengimplementasikan logika bisnis yang sebenarnya. Kedua, Anda akan menghemat banyak uang untuk infrastruktur server dan pengembang lebih produktif karena tes berjalan lebih cepat.
Symlex dimulai pada tahun 2014 sebagai boilerplate Silex sederhana, karena Silex sendiri tidak datang dengan "edisi standar" yang mengarahkan Anda ke arah yang benar. Menggunakan Silex alih-alih Symfony direkomendasikan oleh Sensiolabs (pencipta kedua kerangka kerja) sebagai alternatif ringan untuk Symfony + FosrestBundle untuk dengan cepat membangun layanan istirahat berkinerja tinggi dan aplikasi web halaman tunggal.
Segera diperhatikan bahwa jerawat - wadah layanan yang dilengkapi dengan Silex - terasa rumit bagi pengembang yang datang dari Symfony dan membuatnya sulit untuk menggunakan kembali kode yang ada. Selain itu, banyak contoh kode Silex dan bahkan aplikasi dunia nyata mengakses wadah layanan dari semua bagian kode (tidak hanya kerangka kerja itu sendiri), yang menghindari inversi kontrol dan mengarah pada testabilitas yang canggung. Oleh karena itu Symlex mempromosikan penggunaan injeksi ketergantungan yang ketat dan menggabungkan kenyamanan wadah layanan penuh dengan kecepatan kerangka mikro.
Saat ini, Symlex memiliki komponen peruteannya sendiri (berdasarkan Symfony 4) dan tidak menggunakan Silex lagi. Kerangka kerja ini telah terbukti berguna untuk sejumlah besar aplikasi yang berbeda. Beberapa dari mereka didasarkan pada kernel Symfony biasa sebelumnya dan melakukan perubahan karena mereka tenggelam dalam kompleksitas dan menderita dari waktu respons jauh di atas 30 detik dalam mode pengembangan. Symlex membawa mereka kembali ke jalur tanpa perubahan besar pada basis kode yang ada.
Symlex adalah proyek nirlaba yang sepenuhnya dikelola oleh sukarelawan. Anda dipersilakan untuk mendukung kami melalui sponsor GitHub, terutama jika Anda membutuhkan bantuan dengan menggunakan perangkat lunak kami. Mereka akan mencocokkan setiap donasi di tahun pertama.
Silakan tinggalkan bintang jika Anda menyukai proyek ini, ia memberikan motivasi tambahan untuk terus berjalan. Terima kasih banyak! <3