PDA

Orijinalini görmek için tıklayınız : Sayfa Yüklenme Süresi İçin Sınıf


tepisenordek
08-11-2007, 20:31 PM
Sayfanızın hazırlanıp istemci tarafında gösterilmeye kadar geçen süreyi hesaplayıp gösterebilecek
bir sınıf.
kodlar aşağıdaki gibidir.

kodların anlatımına gelince şöyle özetleyebiliriz.

sınıf kümemizi oluşturuyoruz.

PHP:

1.
2. <?php
3.
4. class time
5. {



sonra sınıf içerisinde ilk zaman damgasının tutulabilmesi için bir değişken tanımlıyoruz.

PHP:

1.
2. /**
3. * Baslanan zamanı tutacak
4. * degisken ismi
5. *
6. * @var time
7. */
8. var $starttime;



başlangıç için zaman damgasını oluşturan fonksiyon,çağrıldığında microtime ile unix zaman
damgası ile o anki milisaniyeyi oluşturup geri döner.

PHP:

1.
2. /**
3. * Zaman baslangicini oluşturan fonksiyon
4. *
5. * @return unknown
6. */
7. function yuklemebaslangici()
8. {
9. list($usec1, $sec1) = explode(" ", microtime());
10. return ((float)$usec1 + (float)$sec1);
11. }



bitiş anındaki zaman damgasını başlangıçta alınan
zaman damgasından çıkararak arasındaki farkı dönen fonksiyonumuz.

PHP:

1.
2. function yuklemebitisi($zaman)
3. {
4. list($usec2, $sec2) = explode(" ", microtime());
5. $son= ((float)$usec2 + (float)$sec2);
6. echo (number_format(($son - $zaman),5)." sn.\n");
7. return;
8. }



şimdi sınıfı çalıştırdığımızda otomatik olarak sınıfın işlemesini sağlayacak fonksiyonu yazıyoruz.
fonksiyon içerisinde değişkene değer atanırken kullanılan yuklemebaslangic() fonksiyonunu yukarıda
inceleyebilirsiniz.
Ayrıca sınıf içerisindeki gerek fonksiyon gerekse değişkenlere $this-> komutuyla
erişebiliyoruz.

PHP:

1.
2. function time()
3. {
4. /**
5. * Sınıf İçindeki değişkene
6. * zaman damgası atanıyor.
7. */
8. $this->starttime = $this->yuklemebaslangici();
9. }



Yükleme zamanını bize getiren fonksiyonumuz.Bu fonksiyon zaman farkını ekrana basar.

PHP:

1.
2. /**
3. * Süre Bitimi hesaplaması
4. *
5. * @return print time
6. */
7. function end_time()
8. {
9. return print $this->yuklemebitisi($this->starttime);
10. }



kullanımına gelince
aşağıdaki kodu sayfada en üste eklenmelidir.Ama unutulmamalıdır.
Şayet zaman hesaplama sınıfı aynı dosya içinde değilse bu kod
o dosyanın include fonksiyonuyla kodlara dahil edildikten sonra kullanılmalıdır.

PHP:

1.
2. //sürenin baslayacağı yere koyacağınız kısım..
3. $time = new time();
4. //bitti



aşağıdaki kodumuzsa geçen sürenin basılacağı yere eklenecek kod

PHP:

1.
2. //sürenin bittiği ve ekrana basacağın yere koyacaksın..
3. $time->end_time();
4. //bitti..




kodların tamamı aşağıdaki gibidir.

PHP:

1.
2. <?php
3.
4. class time
5. {
6. /**
7. * Baslanan zamanı tutacak
8. * degisken ismi
9. *
10. * @var time
11. */
12. var $starttime;
13.
14. function time()
15. {
16. /**
17. * Sınıf İçindeki değişkene
18. * zaman damgası atanıyor.
19. */
20. $this->starttime = $this->yuklemebaslangici();
21. }
22. /**
23. * Süre Bitimi hesaplaması
24. *
25. * @return print time
26. */
27. function end_time()
28. {
29. return print $this->yuklemebitisi($this->starttime);
30. }
31.
32. function yuklemebaslangici()
33. {
34. list($usec1, $sec1) = explode(" ", microtime());
35. return ((float)$usec1 + (float)$sec1);
36. }
37.
38. function yuklemebitisi($zaman)
39. {
40. list($usec2, $sec2) = explode(" ", microtime());
41. $son= ((float)$usec2 + (float)$sec2);
42. echo (number_format(($son - $zaman),5)." sn.\n");
43. return;
44. }
45. }
46. //sürenin baslayacağı yere koyacağınız kısım..
47. $time = new time();
48. //bitti
49.
50. //sürenin bittiği ve ekrana basacağınız yere koyacaksın..
51. $time->end_time();
52. //bitti..
53. ?>