Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasa] Pogoda z google v1.0
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
jaslanin
Klasa ma za zadanie pobrać dane z pogody Google i przedstawić je jako tablica lub obiekt. Klasa udostępniona na licencji BSD

Przykład działania: http://www.gmodules.com/ig/creator?synd=op...7174/pogoda.xml

Pliki dostępne pod adresem http://www.przeklej.pl/plik/pogoda-rar-0015qq98iagh
Będę wdzięczy za wszelkie sugestie, konstruktywną krytykę, znalezione błędy.

Licencja:
index.php - przykład użycia
pogoda.class.php - klasa pogody
_Licencja_klasy.txt - licencja klasy
_Licencja_pogody_google.txt - Zasady używania pogody google.

Licencja: BSD

Środowisko: PHP5 (testowano pod 5.2.9, 5.3)

Przykład zastosowania (pogoda dla miasta Jasło):

  1. $pogoda = new pogoda();
  2. $pogoda->setMiejscowosc('Jasło');
  3. $pogoda_tabelka = $pogoda->jakoObjekt();


Zawartość zmiennej $pogoda_tabelka:

Kod
stdClass Object
(
    [miejscowosc] => Jasło
    [wojewodztwo] => Subcarpathia
    [warunkiTeraz] => stdClass Object
        (
            [data] => 25.05.2010
            [dzien] => Wtorek
            [opisWarunkow] => Deszcz
            [temperatura] => 16
            [wilgotnosc] => 57%
            [wiatr] => Wiatr: zach. z szybkością 26 km/h
            [ikona] => http://www.google.pl/ig/images/weather/rain.gif
        )

    [warunkiKolejneDni] => stdClass Object
        (
            [0] => stdClass Object
                (
                    [data] => 26.05.2010
                    [skrot_dnia] => wt.
                    [dzien] => Środa
                    [temperaturaMinimalna] => 6
                    [temperaturaMaksymalna] => 17
                    [opisWarunkow] => Możliwe opady deszczu
                    [ikona] => http://www.google.pl/ig/images/weather/chance_of_rain.gif
                )

            [1] => stdClass Object
                (
                    [data] => 27.05.2010
                    [skrot_dnia] => śr.
                    [dzien] => Czwartek
                    [temperaturaMinimalna] => 11
                    [temperaturaMaksymalna] => 17
                    [opisWarunkow] => Liczne przejaśnienia
                    [ikona] => http://www.google.pl/ig/images/weather/mostly_sunny.gif
                )

            [2] => stdClass Object
                (
                    [data] => 28.05.2010
                    [skrot_dnia] => czw.
                    [dzien] => Piątek
                    [temperaturaMinimalna] => 11
                    [temperaturaMaksymalna] => 19
                    [opisWarunkow] => Możliwe opady deszczu
                    [ikona] => http://www.google.pl/ig/images/weather/chance_of_rain.gif
                )

            [3] => stdClass Object
                (
                    [data] => 29.05.2010
                    [skrot_dnia] => pt.
                    [dzien] => Sobota
                    [temperaturaMinimalna] => 5
                    [temperaturaMaksymalna] => 17
                    [opisWarunkow] => Bezchmurnie
                    [ikona] => http://www.google.pl/ig/images/weather/sunny.gif
                )

        )

)
bim2
Pierwsze co widać:
1. Raz piszesz "set" raz "jako "
Mayby my too zaczniemy writting po English?
2. Raz masz skrto_dnia a raz opisWarunkow. Zdecyduj się. smile.gif
Wicepsik
object + obiekt = objekt ? biggrin.gif

Mieszasz polskie nazwy z angielskimi. Jeśli twój skrypt wpadnie w ręce osoby która nie zna polskiego to co zrobi? smile.gif
jaslanin
Cytat(Wicepsik @ 26.05.2010, 19:55:11 ) *
Jeśli twój skrypt wpadnie do osoby która nie zna polskiego to co zrobi? smile.gif


Nauczy się polskiego smile.gif A tak na serio, angielskie odpowiedniki mojej klasy już istnieją. Drugą sprawą jest to że moja klasa zamienia dni tygodnia na polskie więc anglikowi się raczej na nie przyda.
A mi się lepiej myśli po polsku. Jak będzie szansa że będzie czytał mój kod ktoś kto polskiego nie zna to będę pisał po angielsku.

Dziękuje za wasze sugestie.

--------

Wersja: 1.1

Wprowadzone zmiany:
+ bardziej spolszczyłem klasę
+ poprawiłem zastosowanie camel case

Do pobrania: http://www.przeklej.pl/plik/pogoda-rar-0015vj3b55a5

Lista plików:
_Licencja_klasy.txt - licencja klasy
_Licencja_pogody_google.txt - licencja pogody google
index.php - przykład zastosowania
klasa.Pogoda.php - klasa pogody

Krótki przykład zastosowania:
  1. $Pogoda = new Pogoda();
  2. $Pogoda->ustawMiejscowosc('Jasło');
  3. $pogodaTabelka = $Pogoda->jakoObiekt();


Zawartość $pogodaTabelka:

  1. stdClass Object
  2. (
  3. [miejscowosc] => Jasło
  4. [wojewodztwo] => Subcarpathia
  5. [warunkiTeraz] => stdClass Object
  6. (
  7. [data] => 26.05.2010
  8. [dzien] => Środa
  9. [opisWarunkow] => Bezchmurnie
  10. [temperatura] => 12
  11. [wilgotnosc] => 88%
  12. [wiatr] => Wiatr: zach. z szybkością 3 km/h
  13. [ikona] => [url="http://www.google.pl/ig/images/weather/sunny.gif"]http://www.google.pl/ig/images/weather/sunny.gif[/url]
  14. )
  15.  
  16. [warunkiKolejneDni] => stdClass Object
  17. (
  18. [0] => stdClass Object
  19. (
  20. [data] => 27.05.2010
  21. [skrotDnia] => śr.
  22. [dzien] => Czwartek
  23. [temperaturaMinimalna] => 10
  24. [temperaturaMaksymalna] => 17
  25. [opisWarunkow] => Liczne przejaśnienia
  26. [ikona] => [url="http://www.google.pl/ig/images/weather/mostly_sunny.gif"]http://www.google.pl/ig/images/weather/mostly_sunny.gif[/url]
  27. )
  28.  
  29. [1] => stdClass Object
  30. (
  31. [data] => 28.05.2010
  32. [skrotDnia] => czw.
  33. [dzien] => Piątek
  34. [temperaturaMinimalna] => 12
  35. [temperaturaMaksymalna] => 19
  36. [opisWarunkow] => Możliwe opady deszczu
  37. [ikona] => [url="http://www.google.pl/ig/images/weather/chance_of_rain.gif"]http://www.google.pl/ig/images/weather/chance_of_rain.gif[/url]
  38. )
  39.  
  40. [2] => stdClass Object
  41. (
  42. [data] => 29.05.2010
  43. [skrotDnia] => pt.
  44. [dzien] => Sobota
  45. [temperaturaMinimalna] => 9
  46. [temperaturaMaksymalna] => 19
  47. [opisWarunkow] => Bezchmurnie
  48. [ikona] => [url="http://www.google.pl/ig/images/weather/sunny.gif"]http://www.google.pl/ig/images/weather/sunny.gif[/url]
  49. )
  50.  
  51. [3] => stdClass Object
  52. (
  53. [data] => 30.05.2010
  54. [skrotDnia] => sob.
  55. [dzien] => Niedziela
  56. [temperaturaMinimalna] => 9
  57. [temperaturaMaksymalna] => 20
  58. [opisWarunkow] => Możliwe opady deszczu
  59. [ikona] => [url="http://www.google.pl/ig/images/weather/chance_of_rain.gif"]http://www.google.pl/ig/images/weather/chance_of_rain.gif[/url]
  60. )
  61.  
  62. )
  63.  
  64. )


Wersja: 1.2

Do pobrania: http://www.przeklej.pl/plik/pogoda-rar-00162a30a96u

Wprowadzone zmiany:
+ w razie problemów z pobieraniem XML od google pogoda się nie wyświetli
+ możliwość ustawienia własnych obrazków

Lista plików:
_Licencja_klasy.txt - licencja klasy
_Licencja_pogody_google.txt - licencja pogody google
index.php - przykład zastosowania
klasa.Pogoda.php - klasa pogody
img - folder z obrazkami

Krótki przykład zastosowania:
  1. $Pogoda = new Pogoda();
  2. $Pogoda->ustawMiejscowosc('Jasło');
  3. $Pogoda->wykonaj();
  4.  
  5. if ($Pogoda->bezBlendow)
  6. {
  7. $pogodaTabelka = $Pogoda->jakoObiekt();
  8. // ...
  9. }


Przykład wykorzystujący własne obrazki:
(opis metody ustawObrazkiPogody można znaleźć w pliku klasy)

  1. $Pogoda = new Pogoda();
  2. $Pogoda->ustawMiejscowosc('Jasło');
  3.  
  4. $obrazkiPogody = array('chance_of_rain', 'chance_of_snow', 'chance_of_storm', 'cloudy', 'dust', 'fog', 'haze', 'icy', 'mist', 'mostly_sunny', 'sleet', 'smoke', 'snow', 'storm', 'sunny', 'thunderstorm');
  5. $Pogoda->ustawObrazkiPogody('img', TRUE, 'png', $obrazkiPogody);
  6.  
  7. $Pogoda->wykonaj();
  8.  
  9. if ($Pogoda->bezBlendow)
  10. {
  11. $pogodaTabelka = $Pogoda->jakoObiekt();
  12. // ...
  13. }


Zawartość zmiennej $pogodaTabelka:


Kod
stdClass Object
(
    [miejscowosc] => Jasło
    [wojewodztwo] => Subcarpathia
    [warunkiTeraz] => stdClass Object
        (
            [data] => 27.05.2010
            [dzien] => Czwartek
            [opisWarunkow] => Częściowe zachmurzenie
            [temperatura] => 15
            [wilgotnosc] => 94%
            [wiatr] => Wiatr: płd. z szybkością 8 km/h
            [ikonaNazwa] => partly_cloudy
            [ikona] => http://www.google.pl/ig/images/weather/partly_cloudy.gif
        )

    [warunkiKolejneDni] => stdClass Object
        (
            [0] => stdClass Object
                (
                    [data] => 28.05.2010
                    [skrotDnia] => czw.
                    [dzien] => Piątek
                    [temperaturaMinimalna] => 12
                    [temperaturaMaksymalna] => 20
                    [opisWarunkow] => Możliwe burze
                    [ikonaNazwa] => chance_of_storm
                    [ikona] => http://www.google.pl/ig/images/weather/chance_of_storm.gif
                )

            [1] => stdClass Object
                (
                    [data] => 29.05.2010
                    [skrotDnia] => pt.
                    [dzien] => Sobota
                    [temperaturaMinimalna] => 9
                    [temperaturaMaksymalna] => 20
                    [opisWarunkow] => Liczne przejaśnienia
                    [ikonaNazwa] => mostly_sunny
                    [ikona] => http://www.google.pl/ig/images/weather/mostly_sunny.gif
                )

            [2] => stdClass Object
                (
                    [data] => 30.05.2010
                    [skrotDnia] => sob.
                    [dzien] => Niedziela
                    [temperaturaMinimalna] => 7
                    [temperaturaMaksymalna] => 17
                    [opisWarunkow] => Możliwe opady deszczu
                    [ikonaNazwa] => chance_of_rain
                    [ikona] => http://www.google.pl/ig/images/weather/chance_of_rain.gif
                )

            [3] => stdClass Object
                (
                    [data] => 31.05.2010
                    [skrotDnia] => niedz.
                    [dzien] => Poniedziałek
                    [temperaturaMinimalna] => 11
                    [temperaturaMaksymalna] => 21
                    [opisWarunkow] => Możliwe opady deszczu
                    [ikonaNazwa] => chance_of_rain
                    [ikona] => http://www.google.pl/ig/images/weather/chance_of_rain.gif
                )

        )

)

bim2
No i teraz jest git majonez smile.gif Osobiście nie podoba mi się, że stawiasz na Polski, bo może obcokrajowcy też by skorzystali z klasy, ale twój wybór smile.gif Ogólnie to datę i dzień przerzuciłbym jako timestamp, i wywalił ikonaNazwa (po co to) ?

Co do skrót dnia i dzień, zawsze sobie to można zrobić osobno poza klasą. Nie widzę potrzeby żeby odpowiadała ona za takie rzeczy. Tak jak pisałem timestamp się tutaj najlepiej sprawdzi smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.