Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasy php5] Generator kanałów informacyjnych (Feeds)
Forum PHP.pl > Inne > Oceny
Athlan
Witam,

Może dział nie jest trafny co do mojego celu zamieszczenia tych klas, ale po części chodzi mi o ocenę. Ostatnio dużo myślałem nad obsługą kanałów informacyjnych w moim fameworku (ang. Feeds). Sprawa wygląda bardzo kontrowersyjnie, bowiem RSS nie cieszy się już taką dobrą opinią, jednak większość użytkowników używa właśnie tej wersji kanałów informacyjnych. Według ekspertów jego miejsce ma zastąpić kanał Atom, który stał się trendem i już rok temu liczba jego użytkowników znacznie wzrosła. Pomyślałem również o udostępnianiu naszych informacji w formie czystego arkusza XML.

Vfeed 0.0.1 - download

Powstały kolejne klasy:

Feed.Class.php – klasa abstrakcyjna, a zarazem rodzic wszystkich innych klas kanałów informacyjnych.
FeedRSS.Class.php – kanał informacyjny w formie RSS
FeedAtom.Class.php – kanał informacyjny w formie Atom
FeedXML.Class.php – czysty arkusz Tagów XML, nie przedstawiany jako kanał, ale jako dostępne źródło informacji, zaliczyłem go jako kanał, gdyż można z niego pobierać informacje poprzez różne dostępne metody takie jak SimpleXML, czy SAX.

W paczce został załączony jeszcze interfejs oraz przykładowe pliki użycia klas. Dokumentacji niestety nie ma, bowiem jest to jeden z komponentów mojego frameworka, szczegółowa dokumentacja wraz z przykładami pojawi się przy wydaniu stabilnej wersji Feeds. Proszę o ocenę, ale nie na tym mi zależy. Jakbyście mogli protestować wszystkie możliwości klasy, zadawać mi jak najwięcej pytań, aby wykryć tyle błędów, ile się tylko da.

Klasy zostały napisane w niecałą godzinę, dlatego wszystko jest możliwe. W razie wystąpienia jakichkolwiek błędów, będę zamieszczał kolejne wersje z poprawkami.

Pozdrawiam, Athlan smile.gif
SHiP
Fajne jednak mam kilka uwag ;].

1. Jak pakujesz paczke to nie pakuj plikow luzem ;]
2. w pliku Loader.inc.php serwer zwraca mi błedy
Kod
Warning: require_once(./Incubator/Interfaces/FeedInterface.Class.php) [function.require-once]: failed to open stream: No such file or directory in /home/hellson/public_html/Feed/core/Loader.inc.php on line 3

Fatal error: require_once() [function.require]: Failed opening required './Incubator/Interfaces/FeedInterface.Class.php' (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in /home/hellson/public_html/Feed/core/Loader.inc.php on line 3

Wszystko przez ?błedne? includowanie plikow. Powinno być
  1. <?php
  2. require_once 'Incubator/Interfaces/FeedInterface.Class.php';
  3. require_once 'Incubator/Feed.Class.php';
  4. require_once 'Incubator/Feed/FeedRSS.Class.php';
  5. require_once 'Incubator/Feed/FeedXML.Class.php';
  6. require_once 'Incubator/Feed/FeedAtom.Class.php';
  7. ?>

3. Moja opera nie wykrywa strony jako kanal rss. Dodaj odpowiednie nagłówki.
  1. <?php
  2. header('Content-Type: text/xml');
  3. ?>
Athlan
SHiP: teoretycznie includowanie powinno działać, w sumie robiłem je na oko i nie sprawdzałem, bo paczke mam na autoload we frame tongue.gif Przepraszam.

Ad3. Dziękuję bardzo, faktycznie nie działa, jedynie poprzez kliknięcie na przycisk Feeda w Operze przy wygenerowaniu tagu przez metodę rel().

Już zapowiadam następną wersję, przynajmniej dla kasy Atomu, gdyż nie jest możliwe dodawanie parametrów dla tagów zawartych w <entry> i głównych ustawień kanału. Bardzo fajny opis zaawansowanego kanału jest tutaj: http://kurs.browsehappy.pl/Atom/Atom . Przyznam szczeże, że lepszy niż na GoogleBase.

Jakbyście mogli, zgłoszajcie wszystke błędy i niedociągnięcia w kodzie smile.gif

pozdrawiam, Athlan smile.gif

--- EDIT ---

Poprawki dotyczące problemu, który przedstawił SHiP:

Vfeed 0.0.2 - download

Aby wygenerować kanał z nagłówkiem Content-type, należy skorzystać z metody Display(). Warunkiem jest to, żeby nie wysłać żadnych danych do buforu przed wywołaniem buforu, w przeciwnym wypadku zostanie wyrzucony wyjątek. Metoda automatycznie kończy pracę aplikacji. Metoda przyjmuje te same parametry, co asString(), dla każdej z klas pokazane jest to w przykładach.

Pozdrawiam, Athlan smile.gif
Turgon
Ściągnąłem klasy wrzucam i odpalam po kolei przykłady - ATOM okej smile.gif
RSS - Nie ma żadnego Itema.
XML -
Cytat
Fatal error: Call to a member function Display() on a non-object in /var/www/Feed/Feed/TestXML.Class.php on line 15


I też taka uwaga co do numeracji. Numeracja nowej wersji nie może być niższa od poprzednika. Postępuj konsekwentnie !
Athlan
Oj przepraszam, stara paczka wymieszana z nowymi przykładami, aktualzuje posta #3 i podaje jeszcze raz link:

Vfeed 0.0.2 - download

Cytat
I też taka uwaga co do numeracji.


a tego nie rozumiem ;P
nospor
Cytat
I też taka uwaga co do numeracji.


a tego nie rozumiem ;P
A czego tu nie rozumiec? Stara wersja ma numer 0.1, a nowa 0.0.2. Tu sie klaniaja podstawy matematyki winksmiley.jpg
Na chlopski rozum 0.1 jest wieksze od 0.0.2, a u ciebie jest na odwrot
Athlan
nospor: błąd w pierwszym poście, mialo być 0.0.1 tongue.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-2025 Invision Power Services, Inc.