Bagaimana cara mengungkapkan versi Magento dengan kode?

28

Saya ingin tahu apakah ada file kelas yang tersedia untuk mengetahui versi magento. Jika situs telah diretas cara mengungkapkan versi?

Saya tahu ada cara sebagai berikut.

Mage::getVersion();

Tetapi jika frontend dan backend dari situs magento tidak berfungsi, bagaimana kita bisa mengecek dengan membaca file kelas? Kelas mana yang perlu dirujuk?

Sukeshini
sumber
6
Pertimbangan untuk pemilih bawah: Magento SE ditujukan untuk pengembang dan pengguna . Pertanyaan ini jelas di bidang yang terakhir.
Benmarks
Magento juga membocorkan informasi dalam pemasangan kulit dasarnya. Dengan melihat pelat lisensi, Anda dapat menjabarkannya dengan cukup cepat.
Fiasco Labs

Jawaban:

36

The Mage::getVersion()Metode didefinisikan disini

#File: app/Mage.php
public static function getVersion()
{
    $i = self::getVersionInfo();
    return trim("{$i['major']}.{$i['minor']}.{$i['revision']}" . ($i['patch'] != '' ? ".{$i['patch']}" : "")
                    . "-{$i['stability']}{$i['number']}", '.-');
}

Melompat ke getVersionInforeferensi di atas, kami menemukan yang berikut

#File: app/Mage.php
public static function getVersionInfo()
{
    return array(
        'major'     => '1',
        'minor'     => '7',
        'revision'  => '0',
        'patch'     => '2',
        'stability' => '',
        'number'    => '',
    );
}

Jadi, Magento menggunakan array yang dikembalikan oleh getVersionInfometode untuk menghasilkan nomor versi. Kita dapat melakukannya secara manual (dengan pikiran kita), dan menghasilkan versi 1.7.0.2 untuk metode yang tercantum di atas. Jika kami menemukannya

public static function getVersionInfo()
{
    return array(
        'major'     => '1',
        'minor'     => '5',
        'revision'  => '0',
        'patch'     => '0',
        'stability' => 'beta',
        'number'    => '1',
    );
}

Kita tahu versi itu adalah beta pertama dari 1.5.0.0.

Yang mengatakan, jika situs telah diretas, semua taruhan dimatikan - karena peretas kemungkinan telah memodifikasi beberapa file kelas dan membuat versi Magento yang tidak ada.

Alan Storm
sumber
Jadi jika situs telah diretas dan kami tidak memiliki cadangan juga, tidak ada cara yang tepat untuk mendapatkan versi yang tepat? (Anggaplah peretas juga telah memodifikasi fungsi di atas)
Sukeshini
4
Nomor Versi Aplikasi Magento hanya disimpan di app/Mage.phptempat yang dicatat oleh Alan Storm. Anda membukanya di editor teks dan melihat apakah depan / belakang sudah mati. Anda dapat mencari versi modul di tabel core_resource, angka-angka ini diimpor dari module/etc/config.xmlfile untuk setiap modul. Jika Mage.phpfile tersebut hilang atau dimodifikasi, tidak ada tempat lain yang saya tahu sedang disimpan.
Fiasco Labs
@Fiasco Labs: Terima kasih atas tanggapannya. +1
Sukeshini
@Lan Storm: Terima kasih atas penjelasan yang bagus dan terperinci. Saya melihat-lihat file seperti yang telah Anda sebutkan.
Sukeshini
2
Perlu diingat bahwa instalasi pemutakhiran yang gagal / gagal mungkin menampilkan versi yang salah Mage.php. Sebuah situs baru-baru ini yang saya kerjakan yang diretas melaporkan 1.7.0.2 tetapi ketika benar-benar melihat file-file itu jelas situs ini masih di 1.6.
pspahn
5

Kita dapat menemukan magento yang versi sekarang digunakan dengan mudah.

Cukup buka folder root Anda /app/Mage.php

Near 168 line, Anda dapat menemukan kode berikut

fungsi public static getVersionInfo ()

{

    return array(

        'major'     => '1',

        'minor'     => '9',

        'revision'  => '0',

        'patch'     => '1',

        'stability' => '',

        'number'    => '',

    );

} 

Ini berarti bahwa kami saat ini menggunakan versi 1.9.0.1.

Teja Bhagavan Kollepara
sumber
5

jika diretas maka Anda perlu memulihkan cadangan, dan kemudian Anda dapat menjalankan perintah ini dari folder root magento untuk memeriksa versi dengan cepat:

echo "Version: $(php -r "require 'app/Mage.php'; echo Mage::getVersion();")"

Version: 1.9.2.3

atau bahkan lebih cepat:

grep -A 10 "function getVersionInfo" app/Mage.php 

public static function getVersionInfo()
{
    return array(
        'major'     => '1',
        'minor'     => '9',
        'revision'  => '2',
        'patch'     => '3',
        'stability' => '',
        'number'    => '',
    );
}
MagenX
sumber
1

Cara mudah adalah mengganti nama app/etc/local.xmlke app/etc/local.xml.bkpbrowser akan menampilkan layar instalasi, di footer dari layar ini menunjukkan versi instalasi, dalam kasus saya itu solusinya.

Alexandre S. Silva
sumber
1

Menonaktifkan kompilasi dari System-> Tools-> Kompilasi menyelesaikannya untuk saya.

Ivaylo Alexandrov
sumber