Saya selalu bertanya-tanya, di mana semua data registri disimpan di Magento?
Saya tahu bahwa objek tunggal disimpan dalam registri. Dan registri hanyalah variabel array statis dari kelas Mage .
Saya punya beberapa pertanyaan di sini untuk menghapus kebingungan saya:
- Apakah registri berbeda untuk pengguna yang berbeda? Maksud saya apakah ini dibuat berdasarkan per pengguna (per permintaan HTTP )?
Sebagai contoh,
Mage::register('foo', 'Hello World'); //set a value for foo Mage::registry('foo'); //will this return hello world for all HTTP users ?
- Apakah data registri disimpan dalam sesi? Jika tidak, bagaimana Magento akan mengidentifikasi pengguna mana yang meminta data registri?
Saya telah membaca artikel blog Alan Storm dan juga jawabannya di StackOverFlow mengenai hal ini. Tetapi saya tidak bisa membunuh kebingungan itu. Harap perbaiki saya. Jika saya pikir dasar-dasar saya kacau. Terima kasih
Jawaban:
Registri menyimpan data ke memori yang khusus untuk permintaan itu (bukan pengguna atau apa pun), dan bertahan selama durasi permintaan itu saja. Prinsipnya benar-benar sangat sederhana,
Mage
kelas dipakai sebagai objek tunggal untuk setiap permintaan dan objek Mage yang dipakai tetap ada dalam memori, dan dapat diakses di semua kelas (dan templat) hingga permintaan selesai dan respons dikirim.Karena objek tersebut adalah singleton, setiap kali Anda mengaksesnya Anda mendapatkan objek yang sama. Semua yang terjadi adalah bahwa Anda menyimpan nilai ke objek ini, jadi ketika satu kelas menyimpan nilai, dan yang lain mengaksesnya mereka berdua bekerja pada objek yang sama dan kelas kedua dapat mengambil nilai set kelas pertama.
sumber
Mage::register()
untuk permintaan itu. Jika Anda ingin menyimpan data spesifik pengguna Anda harus menggunakan sesi, registri benar-benar hanya dirancang untuk membuat data portabel antar kelas.getSingleton()
metodeMage
kelas itu sebenarnya menyimpan data ke registri.Registri disimpan dalam memori dan sesuai permintaan HTTP, sehingga Anda tidak dapat berbagi data antara permintaan atau pengguna yang berbeda.
sumber
Registry Magento disimpan dalam memori aplikasi .
ketika skrip Anda selesai dijalankan, apa pun yang Anda simpan dalam registri hilang, jadi tidak perlu khawatir untuk menghapusnya (kecuali skrip yang sedang Anda jalankan menyimpan benda-benda besar di dalam registri dan sedang mengulang banyak data).
Dalam hal demikian, Anda harus membatalkan pendaftaran entri Anda setelah selesai.
Registry hanyalah properti statis dari kelas Mage. lihat detailnya
tapi tetap saja saya tidak bisa menemukan penjelasan yang bagus
2) untuk setiap pengguna akan ada registri terpisah per permintaan di server.
Saya harap ini akan membuat sedikit jelas dalam pikiran Anda
sumber