Tôi biết rằng tôi đã tải xuống dự án Symfony2
và bắt đầu với nhưng tôi đã cập nhật nhà cung cấp của mình nhiều lần và tôi muốn biết phiên bản nào của symfony tôi cóLàm cách nào để biết tôi đang sử dụng phiên bản Symfony nào?
Bất kỳ ý tưởng nào?
Tôi biết rằng tôi đã tải xuống dự án Symfony2
và bắt đầu với nhưng tôi đã cập nhật nhà cung cấp của mình nhiều lần và tôi muốn biết phiên bản nào của symfony tôi cóLàm cách nào để biết tôi đang sử dụng phiên bản Symfony nào?
Bất kỳ ý tưởng nào?
Chạy app/console --version
(đối với Symfony3: bin/console --version
), nó sẽ cung cấp cho bạn một ý tưởng khá hay. Trên một dự án ngẫu nhiên của tôi, đầu ra là:
Symfony version 2.2.0-DEV - app/dev/debug
Nếu bạn không thể truy cập vào giao diện điều khiển, hãy thử đọc symfony/src/Symfony/Component/HttpKernel/Kernel.php
, nơi mà các phiên bản là hardcoded, ví dụ:
const VERSION = '2.2.0';
Chỉ trong trường hợp bạn đang tự hỏi, console
tạo một phiên bản của Symfony\Bundle\FrameworkBundle\Console\Application
. Trong hàm tạo lớp này, nó sử dụng Symfony\Component\HttpKernel\Kernel::VERSION
để khởi tạo hàm khởi tạo gốc của nó.
nếu bạn đang ở trong app_dev, bạn có thể tìm thấy phiên bản symfony ở góc dưới bên trái của trang
Bạn có thể cần phải mở thanh công cụ gỡ lỗi bằng cách nhấp vào biểu tượng Symfony ở góc dưới cùng bên phải của màn hình;) –
Một cách khác là nhìn vào các nguồn cho Symfony\Component\HttpKernel\Kernel
cho nơi const VERSION
được định nghĩa. Ví dụ về GitHub
Địa phương này sẽ được đặt trong vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
.
Từ bên trong dự án Symfony, bạn có thể nhận được giá trị trong PHP theo cách này:
$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
Nếu bạn muốn dynamicallly hiển thị phiên bản Symfony 2 của bạn trong các trang, ví dụ trong chân, bạn làm có thể nó theo cách này .
tạo ra một dịch vụ
<?php
namespace Project\Bundle\DuBundle\Twig;
class SymfonyVersionExtension extends \Twig_Extension
{
public function getFunctions()
{
return array(
//this is the name of the function you will use in twig
new \Twig_SimpleFunction('symfony_version', array($this, 'b'))
);
}
public function getName()
{
//return 'number_employees';
return 'symfony_version_extension';
}
public function b()
{
$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
return $symfony_version;
}
}
ký trong service.yml
dut.twig.symfony_version_extension:
class: Project\Bundle\DutBundle\Twig\SymfonyVersionExtension
tags:
- { name: twig.extension }
#arguments: []
Và bạn có thể gọi nó là anywhere.In Controller, quấn nó trong JSON, hoặc trong các trang ví dụ chân
<p> Built With Symfony {{ symfony_version() }} Version MIT License</p>
Bây giờ mỗi khi bạn chạy bản cập nhật soạn nhạc để cập nhật nhà cung cấp, phiên bản symfony cũng sẽ tự động ngày trong template.I bạn biết điều này là quá mức cần thiết nhưng điều này làm thế nào tôi làm điều đó trong các dự án của tôi và nó đang làm việc
chúng ta có thể tìm thấy phiên bản symfony sử dụng Kernel.php tập tin nhưng vấn đề là các Vị trí của Kernal Will thay đổi từ phiên bản cho phiên bản (Better Do File Search trong bạn Danh mục dự án)
trong symfony 3.0: my_project \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Kernel.php
Kiểm tra từ Controller/PHP file
$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**
nếu bạn cố gắng với phiên bản symfony
hãy thử với
symfony 2 +
cmd> ứng dụng php/console --version
symfony 3+
cmd> php bin/console --version
ví dụ
D: project> php bin/console --version
Symfony 3.2.8 (kernel: app, env: dev, debug: true)
bạn cũng có thể kiểm tra phiên bản của symfony và các phiên bản của tất cả các gói cài đặt khác bằng cách chạy
composer show
hoặc
composer show | grep sonata
để có được phiên bản của gói cụ thể như sonata, vv
Đối Symfony 3.4
Kiểm tra hằng số trong tệp này vendor/symfony/http-kernel/Kernel.php
const VERSION = '3.4.3';
HOẶC
composer show | grep symfony/http-kernel
hoặc chỉ có một cái nhìn ở đầu còn lại trong thanh symfony dev (chỉ hiển thị trong dev mod)! – zizoujab
Đây là khá cao trên google "làm thế nào để phát hiện phiên bản symfony" danh sách nhưng tôi chỉ có quyền truy cập FTP vào máy chủ. Tệp nào sẽ cho biết phiên bản nào của Symfony đang được sử dụng? – HMR
@HMR vừa cải thiện câu trả lời để nó bao gồm trường hợp của bạn. Hi vọng bạn tìm được thứ hữu dụng! :) –