CodeIgniter WebServis Veritabanı Hatalarını Yakalamak

Codeigniter ile yürüttüğümüz birkaç web servisimiz mevcut. Bu servislerimiz arka planda olduğu için genellikle veritabanı sorguları ve çalışan sorgulardaki hataları yakalayamıyoruz. Bunun için system/database/DB_driver.php dosyasında birazcık oynayacağız.

display_error fonksiyonunda hataları gösteren yere farklı bir domain/sub domain altındaki servisimize gönderiyoruz. Bu servis üzerinde ise gelen bilgileri alıp Mail olarak yazılım ekibimize gönderiyoruz. Böylece bir hata olduğunda yakalama şansımız yüksek oluyor.

Mail göndermek yerine farklı senaryolarda yapılabilir. Örneğin telegramdan kendinize bildirim gönderebilirsiniz. Başka bir veritabanına hataları yazabilirsiniz. SMS hadi attırabilirsiniz. Monitoring yazılımınız ile entegre edebilirsiniz. Bildirim servisini aktif etmek tamamıyla sizin ihtiyaçlarınıza kalmış bir durum.

Okumaya devam et “CodeIgniter WebServis Veritabanı Hatalarını Yakalamak”

PHP Codeigniter İle HTML Çıktısı Sıkıştırma

Yenilenen teknolojilerde her zaman istediğimiz birşey vardır.  “HIZ”

Hep daha hızlı olmasını isteriz. Tıkladığımızda açılsın, hatta tıklayacağımızı hissedip öncesinden haberi varmış gibi hızlıca cevap vermesini bekleriz. Kimlerden bekleriz. Tabi ki yazılımlar, programlardan.

Codeigniter kullandığımız bir sistemde sayfa ( browser taraflı tabiki ) açılış, derleme hızını yükseltmek, bekleme süresini düşürebilmek için uğraşırken HTML çıktısının boşluklarının browserlarımızı ne kadar yorduğunu düşündük. Klasik hızlandırma senaryoları bir çoğumuzun bildiği gibi CSS ve Javascript dosyalarının minify ( küçültülmesi ) edilmesinden geçer. Bunlarda bir yere kadar yeterli olacaktır. Biz ekstra olarakda HTML çıktığımızı da azaltmak istedik.

Bu sayede sayfanın toplam boyutu düşüceği için ufakda olsa bir hız kazanmayı hedefledik. Başarılı olduğumuza inanıyorum. Sizlerde farklı yöntemler kullandıysanız paylaşabilirsiniz.

Codeigniter tarafında biz bu işlemi direkt olarak SYSTEM > CORE > LOADER sıfınının view fonksiyonuna uyguladık. Hem ajax requestlerimizde hemde standart HTML outputlarında oldukça başarılı sonuçlar verdi.

Aşağıdaki gibi düzenlemeniz yeterlidir. Replace fonksiyonu yerine daha hızlı bir metodda tercih edilebilir. Özel bir fonksiyon dahi yazılabilir fakat deneme sürecini preg_replace oldukça iyi atlattı.

	public function view($view, $vars = array(), $return = FALSE)
	{
		$buffer = $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
		$search = array( '/\n/', '/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s' ); $replace = array( ' ', '>', '<', '\\1' );
		
		return preg_replace($search, $replace, $buffer);
	}

Genelde sistemlerin ve framework’lerin CORE’larında oynamak tehlikelidir. Bazen risk almak lazım.

Codeigniter frameworküne özel değildir. Fonksiyonu farklı yapılarda da yapınıza göre düzenleyip kullanabilirsiniz.

Hızlandırma tekniklerinden ileride bahsedeceğim. SQL sorgularınızdan tutunda sayfada kullanılan değişken temizleme olaylarından bahsedeğim. Bunu ilk adım olarak sayfabilirsiniz. 🙂