Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa do sprawdzania statusu serwera
Dominator
post
Post #1





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Witajcie
Napisałem sobie klasę do sprawdzania statusu serwera (włączony/wyłączony). Możecie go ocenić? (pod względem czy jest napisany poprawnie).

  1. <?php
  2.  
  3. Class Status
  4. {
  5. public function Get($ip, $port)
  6. {
  7. global $msg;
  8. $this->ip = $ip;
  9. $this->port = $port;
  10. $this->msg = $msg;
  11. $connection = fsockopen($this->ip, $this->port, $errorNo, $errorStr, 3);
  12. if($connection)
  13. {
  14. $this->msg = "Server is UP";
  15. }
  16. else
  17. {
  18. $this->msg = "Server is DOWN";
  19. }
  20. }
  21. public function Display()
  22. {
  23. echo $this->msg;
  24. }
  25. }
  26.  
  27. $pub = new Status();
  28. $pub->Get("25.135.219.119","25565");
  29. $pub->Display();
  30.  
  31. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
widmo_91
post
Post #2





Grupa: Zarejestrowani
Postów: 109
Pomógł: 25
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


2. To że nie wymagają nie znaczy, że nie warto tego robić bo później klasa się rozrośnie jak to zwykle bywa i będziesz szukał w której metodzie została zadeklarowana taka zmienna i co robi a jak zadeklarujesz to wszystkie będziesz miał w jednym miejscu
5. Ale po co Ci ona skoro i tak ją nadpisujesz później:
if($connection)
{
$this->msg = "Server is UP";
}
else
{
$this->msg = "Server is DOWN";
}

Wywal: global $msg; i $this->msg = $msg;

Na początkowym etapie nauki radzę na siłę unikać zmiennych globalnych.
Go to the top of the page
+Quote Post
Dominator
post
Post #3





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Cytat(widmo_91 @ 23.07.2013, 16:41:42 ) *
2. To że nie wymagają nie znaczy, że nie warto tego robić bo później klasa się rozrośnie jak to zwykle bywa i będziesz szukał w której metodzie została zadeklarowana taka zmienna i co robi a jak zadeklarujesz to wszystkie będziesz miał w jednym miejscu
5. Ale po co Ci ona skoro i tak ją nadpisujesz później:
if($connection)
{
$this->msg = "Server is UP";
}
else
{
$this->msg = "Server is DOWN";
}

Wywal: global $msg; i $this->msg = $msg;

Na początkowym etapie nauki radzę na siłę unikać zmiennych globalnych.


2. Zrobione, przemyślałem sobie i doszedłem do wniosku, że masz rację. Dzięki (IMG:style_emoticons/default/wink.gif)
5. Usunąłem global + $this->msg = $msg i działa pięknie, dzięki jeszcze raz! (IMG:style_emoticons/default/biggrin.gif)

Ogólnie rzecz biorąc, napisałem sobie drugi, taki sam skrypt. Według was - który lepszy?
Robiłem benchmark i różnica pomiędzy skryptami wynosi 0,000061.

Wersja 1:
  1. Class Status
  2. {
  3. public function Set($ip, $port = 80)
  4. {
  5. $this->ip = $ip;
  6. $this->port = $port;
  7. $connection = @fsockopen($this->ip, $this->port, $errorNo, $errorStr, 3);
  8. if($connection)
  9. {
  10. $this->msg = "Server is UP";
  11. }
  12. else
  13. {
  14. $this->msg = "Server is DOWN";
  15. }
  16. fclose($connection);
  17. }
  18. public function Display()
  19. {
  20. echo $this->msg;
  21. }
  22. public static function getmicrotime()
  23. {
  24. return array_sum(explode(' ', microtime()));
  25. }
  26. }


Wersja 2:
  1. Class Status
  2. {
  3. public function __construct($ip, $port = 80)
  4. {
  5. $this->Set($ip, $port);
  6. $this->Connect();
  7. }
  8. public function Set($ip, $port)
  9. {
  10. $this->ip = $ip;
  11. $this->port = $port;
  12. }
  13. public function Connect()
  14. {
  15. $con = @fsockopen($this->ip, $this->port, $errorNo, $errorStr, 3);
  16. if($con)
  17. {
  18. $this->msg = "+";
  19. }
  20. else
  21. {
  22. $this->msg = "-";
  23. }
  24. }
  25. public function Display()
  26. {
  27. echo $this->msg;
  28. }
  29. public static function getmicrotime()
  30. {
  31. return array_sum(explode(' ', microtime()));
  32. }
  33. }


Jakie macie uwagi?

Ten post edytował Dominator 23.07.2013, 23:32:38
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 01:34