Php | Çoklu dil sistem mantığı
Merhabalar, php ile çoklu dil sistemi yapmayı düşünüyorum. Öncelikle kelimeler cümleler panelden değişecek. Aklımda birkaç yöntem var ama hangisi daha iyi birde sizlerden fikir almak istedim.
Yöntem bir
Php dosyası oluşturup içine array ile kelime,cümleleri yazmak. Echo ile bunları html de kullanmak.
Yöntem iki
Mysql veritabanını kullanarak kelime,cümleleri veritabanında tutmak. Html içinde çekip echo ile yazdırmak.
Yöntem üç
Kelime,cümleleri json dosyasnda tutup html'de echo ile yazdırmak.
Yöntem dört
Xml dosyası ile kelime,cümleleri tutup html'de echo ile yazdırmak.
Bu yöntemler elbette herkesin aklına gelmiştir. Ama hangisi daha performans olur tartışılır. Eğer farklı bir yöntem biliyorsanız yazabilirsiniz veya bu yöntemlerden hangisi daha performans olur yorumlayabilirsiniz.
Amacım her bir dil içindeki kelimelerin admin panelinden düzenleyebilmek.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Json ile yaptım ve php yardımıyla düzenleme silme ekleme gibi herşeyi dinamik yaptım.
Veritabınana bağlanmak çok saçma her sayfa açılığında veritabanına sorgu gidecek.Sesion olarak tutmak olabilir fakat bu verileri hem kullanıcıda hemde kedimizde sakladığımızı düşünürsek yine saçma oluyor.
Çözüm:
En mantıklısı ve doğrusu verileri sıkıştırılmış json olarak tutmak. Php tarafından okunup düzenlenebilir oluyor böylece. Sayfa açılışındaki hıza etkisi 1 salise falan oldu diyebilirim.
Json encode ve decode ile php tarafından okunup düzenlenebilir.
yazdığın site çoklu kullanıcılar içinse dinamik yapman en doğrusu dil için
yok tek kişiye yapıyorsan direk dil dosyasından çekmek daha akıllıca.
çünkü kişiden kişiye değişir sabit isimleri
ben kendi adıma
session da tutuyorum dil verilerini ve dinamik olarak sql den çekiyorum sabitler için
içerik yazıları için ise o session a bağlı id ile yine sqlden ona göre listeletiyorum.
// Lang/en.php
return [
'pages' => [
'Home',
'About Us',
'Contact Us'
]
];
// Lang/tr.php
return [
'pages' => [
'Ana Sayfa',
'Hakkımızda',
'İletişim'
]
];
ben bu şekilde kullanıyorum. Eğer panelden vb. düzenlenebilir olmayacaksa (yani db ye bağlanmaya gerek yoksa) yöntem bir kesinlikle daha performanslı. Eğer düzenlenebilir olacaksa db den çekip cache'te tutmalısınız.
sql de json olarak tut
sonra bır tane php dosyasına yazdır onuda json olarak sunucuda kaydet
guncelleme yaparsan o php dosyası guncellenır ve guncel json dosyasını sunucuya yenıden kaydeder
https://www.digitalocean.com/community/tutorials/working-with-json-in-mysql