Bir önceki yazımda pseudo-cron kullanımının CodeIgniter’da kullanımı için bir örnek vermiştim. Daha sonra onu kendim de kullanırken karmaşık bulmaya başladım. O yüzden oturup kendim bir tane yazdım.
Bu kodun çalışma mantığı aynı, fonksiyonumuz bir boş resim döndürüyor geriye. Yani istediğimiz sayfa ya da sayfalarda bu resmi yerleştirerek pseudo-cron işlemlerimizi yapıyoruz.
PHP
CodeIgniter Cron İşlemleri (cron jobs) için Pseudo-Cron Kullanımı
Normalde web sitesinde rutin yapılan işlemler için sunucu (linux’tan bahsediyoruz) üzerinde cron işlemleri tanımlanır. Basit bir şekilde wget komutu yada doğrudan php komutu ile php dosyaları çalışıtırılarak işlem gerçekleştirilir.
Bu yukarıdaki durum ideal durum senaryosu, ve hiç şüphesiz dünya ideal değil 🙂 . İşte böyle durumlarda adına pseudo-cron denilen ve cron işlemlerini sitedeki sayfaların çağrılmasına bağlı olarak çalışan scriptlerle yerine getiren bir yöntem kullanılır.
CodeIgniter Upload fonksiyonunun türkçe karakterleri silmesini engelleme
CodeIgniter ile dosya yüklerken dosya isimleri CodeIgniter tarafından url dostu hale dönüştürülüyor. Yalnız bu işlem sırasında türkçe olan bütün karakterleri kaybediyorsunuz. Bu handikapı aşmak amacıyla CodeIgniter’ın Upload kütüphanesine ufak bir müdahalede bulunuyoruz.
Aşağıdaki dosyayı MY_Upload.php dosya adıyla application/libraries klasörünün içerisine kaydediyoruz.
Dosya isimleri ve web URL’leri için isim temizleme fonsiyonu
Uygulamalarımızda resim yada dosya yüklemesi yaparken dosya isimlerinde bulunan uygun olmayan karakterleri düzeltme gereksinimi duyarız. Ya da SEO uyumlu siteler yaparken, hazırladığımız sitedeki içerik için URL dostu adresler üretmemiz gerekir. İşte bu durumlarda kullandığım sadece türkçe değil aslında pek çok dil için yararlı olabilecek bir fonksiyon kullanıyorum.
PHP için Türkçe date fonksiyonu
PHP’de date fonksiyonunun kullanımı normalde ingilizcedir. setlocale gibi bir sürü detayla uğraşmak istemiyorsanız ve ayrıca onlarla uğraşıp da sunucu kaynaklı sorunlarla boğuşmak zorunda kalmamak için ben basit bir fonksiyon kullanıyorum. Çalışması date fonksiyonuna çok benzer, fakat türkçe çıktı verir. Fonksiyon biri zorunlu iki değişken alıyor.