Bagaimana cara mengetahui versi Symfony yang saya miliki?
128
Saya tahu bahwa saya telah mengunduh sebuah Symfony2proyek dan memulainya tetapi saya telah memperbarui vendor saya beberapa kali dan saya ingin mengetahui versi symfony yang saya miliki
sonata-project / core-bundle ada di versi 2.3.9 dan sonata-project / admin-bundle ada di versi 2.3.7, sesuai dengan composer showperintah.
Patrick
Jawaban:
220
Jalankan app/console --version(untuk Symfony3 :) bin/console --version, itu akan memberi Anda ide yang cukup bagus. Pada proyek acak saya, hasilnya adalah:
Symfony version 2.2.0-DEV - app/dev/debug
Jika Anda tidak dapat mengakses konsol, coba baca symfony/src/Symfony/Component/HttpKernel/Kernel.php, dengan versi yang di- hardcode , misalnya:
const VERSION ='2.2.0';
Untuk berjaga-jaga jika Anda bertanya-tanya, consolebuat instance Symfony\Bundle\FrameworkBundle\Console\Application. Dalam konstruktor kelas ini, ia menggunakan Symfony\Component\HttpKernel\Kernel::VERSIONuntuk menginisialisasi konstruktor induknya.
atau lihat di kiri atas pada bilah dev symfony (hanya terlihat di mod dev)!
zizoujab
Ini cukup tinggi di daftar google "how to detect symfony version" tetapi saya hanya memiliki akses FTP ke server. File apa yang menunjukkan versi Symfony yang digunakan?
HMR
@HMR baru saja meningkatkan jawabannya sehingga mencakup kasus Anda. Semoga bermanfaat! :)
Meskipun sudah ada banyak jawaban bagus, saya ingin menambahkan opsi yang belum disebutkan. Menggunakan perintah:
php bin/console about
Anda bisa mendapatkan banyak detail tentang proyek saat ini. Bagian pertama adalah tentang Symfony itu sendiri dan terlihat seperti ini:
---------------------------------------------------------------Symfony---------------------------------------------------------------Version4.2.3Endof maintenance 07/2019Endof life 01/2020---------------------------------------------------------------
Saya menemukan informasi lain selain nomor versi sangat berguna.
Ada juga bagian lain yang memberikan detail tentang (kerangka kerja) Kernel, PHP, Lingkungan.
Jika Anda ingin menampilkan versi Symfony 2 Anda secara dinamis di halaman, misalnya di footer, Anda dapat melakukannya dengan cara ini.
Buat layanan:
<?php
namespaceProject\Bundle\DuBundle\Twig;classSymfonyVersionExtensionextends \Twig_Extension
{publicfunction getFunctions(){return array(//this is the name of the function you will use in twignew \Twig_SimpleFunction('symfony_version', array($this,'b')));}publicfunction getName(){//return 'number_employees';return'symfony_version_extension';}publicfunction b(){
$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;return $symfony_version;}}
Dan Anda bisa menyebutnya di mana saja. Di Controller, bungkus dalam JSON, atau di footer contoh halaman
<p> Built With Symfony {{ symfony_version() }} Version MIT License</p>
Sekarang setiap kali Anda menjalankan pembaruan komposer untuk memperbarui vendor Anda, versi symfony juga akan secara otomatis memperbarui di template Anda. Saya tahu ini berlebihan tetapi ini adalah cara saya melakukannya dalam proyek saya dan berhasil.
kita dapat menemukan versi symfony menggunakan file Kernel.php tetapi masalahnya adalah Lokasi Kernal Akan berubah dari versi ke versi (Lebih baik Lakukan Pencarian File di Direktori Proyek Anda)
composer show
perintah.Jawaban:
Jalankan
app/console --version
(untuk Symfony3 :)bin/console --version
, itu akan memberi Anda ide yang cukup bagus. Pada proyek acak saya, hasilnya adalah:Jika Anda tidak dapat mengakses konsol, coba baca
symfony/src/Symfony/Component/HttpKernel/Kernel.php
, dengan versi yang di- hardcode , misalnya:Untuk berjaga-jaga jika Anda bertanya-tanya,
console
buat instanceSymfony\Bundle\FrameworkBundle\Console\Application
. Dalam konstruktor kelas ini, ia menggunakanSymfony\Component\HttpKernel\Kernel::VERSION
untuk menginisialisasi konstruktor induknya.sumber
/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
bin/console --version
Cara lain adalah dengan melihat sumber di
Symfony\Component\HttpKernel\Kernel
manaconst VERSION
didefinisikan. Contoh di GitHubSecara lokal ini akan berlokasi di
vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
.sumber
Meskipun sudah ada banyak jawaban bagus, saya ingin menambahkan opsi yang belum disebutkan. Menggunakan perintah:
Anda bisa mendapatkan banyak detail tentang proyek saat ini. Bagian pertama adalah tentang Symfony itu sendiri dan terlihat seperti ini:
Saya menemukan informasi lain selain nomor versi sangat berguna.
Ada juga bagian lain yang memberikan detail tentang (kerangka kerja) Kernel, PHP, Lingkungan.
sumber
Gunakan perintah berikut di Terminal / Command Prompt Anda:
Ini akan memberi Anda Versi Symfony Anda.
sumber
Jika Anda ingin menampilkan versi Symfony 2 Anda secara dinamis di halaman, misalnya di footer, Anda dapat melakukannya dengan cara ini.
Buat layanan:
Daftar di service.yml
Dan Anda bisa menyebutnya di mana saja. Di Controller, bungkus dalam JSON, atau di footer contoh halaman
Sekarang setiap kali Anda menjalankan pembaruan komposer untuk memperbarui vendor Anda, versi symfony juga akan secara otomatis memperbarui di template Anda. Saya tahu ini berlebihan tetapi ini adalah cara saya melakukannya dalam proyek saya dan berhasil.
sumber
Anda juga dapat memeriksa versi symfony dan versi dari semua paket terinstal lainnya dengan menjalankan
atau
untuk mendapatkan versi paket tertentu seperti sonata dll.
sumber
kita dapat menemukan versi symfony menggunakan file Kernel.php tetapi masalahnya adalah Lokasi Kernal Akan berubah dari versi ke versi (Lebih baik Lakukan Pencarian File di Direktori Proyek Anda)
di symfony 3.0: my_project \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Kernel.php
Periksa dari Controller / File PHP
sumber
jika Anda mencoba dengan versi symfony
silakan coba dengan
symfony 2 +
symfony 3+
sebagai contoh
sumber
Dari dalam proyek Symfony Anda, Anda bisa mendapatkan nilai dalam PHP dengan cara ini:
sumber
jika Anda berada di app_dev, Anda dapat menemukan versi symfony di pojok kiri bawah halaman
sumber
Untuk Symfony 3.4
Periksa konstanta dalam file ini vendor / symfony / http-kernel / Kernel.php
ATAU
sumber