autor: Pierre-Alain Joye paj@pearfr.org (tłumaczenie: Robert Janeczek rashid@php.net)
Lista mailowa była bardzo aktywna w ciągu minionego tygodnia, to
znak powrotu czasu uaktualnień, nowości i poprawek w PEAR. Tematy bardzo
różne - od klasycznego problemu 'Nazewnictwo i standardy kodowania'
do systemu automatycznej translacji i peardoc. Sebastian Bergmann i Kristian
Köhntopp pracowali intensywnie nad XML_Transformer, co nas bardzo cieszy
- w końcu powstało bardzo dobre wydanie stabilne.
W tym tygodniu pojawiły się cztery wydania stabilne, co samo w sobie jest
dobrą informacją, a do tego jedna beta.
Nowe wydania
Stabilne
- HTTP_Request - prosty sposób wykonywania poleceń
HTTP, obsługuje GET/POST/HEAD/TRACE/PUT/DELETE, autentykację typu Basic,
Proxy z autentykacją itp.
- Log - klasa Log udostępnia abstrakcyjny system
logowania. Wspiera logowanie do konsoli, pliku, syslogu, bazy SQL, poczty
i pojemników mcal. Dodatkowo umożliwia wykorzystanie mechanizmu
obserwatorów (subject-observer)
- Net_DNS - biblioteka do komunikacji z serwerem DNS
- Var_Dump - umożliwia prosty sposób
wyświetlania zawartości zmiennych w przyjemniejszy sposób niż
klasyczne var_dump()
- XML_Transformer - korzystając z XML_Transformer
można łatwo dołączyć funkcjonalność PHP do tagów XML, a przez to
przetwarzać wejściowe drzewo XML w wyjściowe bez konieczności
używania XSLT.
Beta
- Mail_Queue - Klasa umieszczająca pocztę w kolejce i wysyłająca ją
potem w tle
Nagłówki z PEAR-DEV
Strona PEAR i menedżery pakietów
Grupa pearweb pracuje obecnie intensywnie nad dopracowaniem ostatnich
detali i rozwiązaniem problemów witryny PEAR. Potrzebują pomocy, aby
narzędzie które stworzą było maksymalnie przydatne i stabilne - dlatego
przyda się odzew od odwiedzających i programistów PEAR. Jeśli korzystasz
ze strony PEAR albo z jednego z dostępnych menedżerów pakietów, mocno polecamy
poinformowanie ich o problemach, które napotkasz albo pomysłach ulepszeń, co
można zrobić na dobrze znanych listach znanych listach albo na stronie bugów php. Z góry dzięki za
informacje.
PS: Aby dostać się na wersję beta strony trzeba uaktywnić cookie 'devme',
wejdź pod ten link aby to zrobić:
http://pear.php.net/?devme
MDB - opisy, odzew użytkowników i współtworzenie
W tym tygodniu zauważyłem, że wiele osób nie wie albo ma błędne pojęcie
o celach i funckcjonalności MDB. Dlatego poprosiłem autora, aby
krótko wyjaśnił 'co&jak' pakietu MDB:
** Różnice między PEAR DB a PEAR MDB
Oba pakiety mają bardzo podobne wspólne API do wszystkich
wspieranych RDBMS (więc użytkownicy PEAR DB będą się czuli jak w domu).
PEAR MDB idzie znacznie dalej jeśli chodzi o abstrakcję RDBMS. Poza
emulacją sekwencji jest również ahstrakcja typów danych (np. nie wszystkie
RDBMS obsługują timestamp w ten sam sposób), tworzenie, zmienianie i
usuwanie indeksów, tabel i baz danych. Ma też niezależne od typu
bazy danych zarządzanie schematami. Oznacza to, że nei trzeba tworzyć
osobnych schematów SQL dla każdego typu wspieranej bazy danych. MDB
możne nawet zmienić bazę danych jeśli plik schematu został zmieniony.
PEAR MDB korzysta z
doświadczeń zdobytych przy pracach nad PEAR DB i z tego powodu jest
conajmniej tak szybki jak PEAR DB.
** Wyjaśnienei
Obecnie PEAR MDB nie obsługuje tylu sterowników co PEAR DB. Z tego powodu,
a także dlatego, że PEAR MDB jest nowszy, nie powinno się uważać go za
stabilny w takim stopniu, jak PEAR DB. zajżyj do Readme.txt
po dalsze szczegóły.
Przy okazji - Lukasowi brakuje informacji o eksperymentach i odzewu, które
są niezbędne do szybkiego stworzenia stabilnego i przydatnego narzędzia.
Lukas poszukuje osób, które chciałyby współtworzyć MDB tworząc nowe
sterowniki, obecnie priorytetowe są MS SQLServer i Oracle. Możesz się
skontaktować z Lukasem przez listę peardev albo ze strony
MDB.
Dokumentacja PEAR, japońskie tłumaczenie
Yasuo Ohgaki rozpoczął w tym tygodniu proces tłumaczenia dokumentacji PEAR na
japoński. Z radością przywitaliśmy tą inicjatywę.
Pear Weekly News umieszczone w newsletterze Nexen
Dzięki Damien'owi Seguy, który dodał PEAR weelky do newslettera nexen. Tą
drogą możecie (zostawiając notkę o prawach autorskich) rozsyłać te
wiadomości do swoich list i stron. W przypadku problemów czy pytań
możecie się skontaktować z nami na liście mailowej peardev
Skrót z PEAR-DEVc
FAQ licencyjny PEAR dostępny
Lista zalecanych licencji dla PEAR jest już dostępna w PEAR FAQ.
Upiększacz kodu PHP
Jens Bierkandt zaproponował dodanie swojego modułu upiększającego kod
źródłowy do PEAR. Któż z nas nie stracił kiedyś godzin na przeformatowanie kodu?
Ten moduł powinien rozwiązać ten problem, a oto jego główne cechy:
- automatyczne wcinanie kodu PHP o określoną liczbę spacji
- nowe linie automatycznie dodawane w razie potrzeby
- dołączenie opcji ustawiających styl kodowania odpowiedni dla C lub PEAR
Pakiet powinien być wkrótce dostępny w CVS PEAR.
Inline::C w php ?
George Schlossnagle zasugerował dodanie właściwości dobrze znanej ze świata perl: Inline:: C.
Oczywiście nie chce wynajdować koła po raz kolejny. Celem jest umożliwienie
wykorzystania narzędzia w taki sposób:
<?pseudocode
$function_def = <<<EOF
php_function(times){
int i,j;
return if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, &i,&j) = FAILURE)
RETURN_LONG(i*j);
}
EOF
Inline_C($function_def);
times(2,2);
?>
Inline_C brałby blok kodu w C, dodawałby wymagane do stworzenia modułu informacje,
a po kompilacji do kodu binarnego umieszczałby w cache i ładował przez dl().
Nazewnictwo i RFC
Mika Tuupola zasugerował dodanie kilku rekomendacji na temat użycia
nazw konstruktorów i fabryk klas ( ten
wątek).
I18N i system do tłumaczeń
Wojciech Zieliñski przypomniał o swojej propozycji pakietu
do maszynowego tłumaczenia. Obecnie Wolgang Kriesing pracuje nad takim pakietem
(I18N), który jest na razie dostępny tylko w CVS. Jeśli tłumaczenia maszynowe
albo internacjonalizacja jest ci potrzebna przy projektach albo chcesz im
pomóc, możesz się z nimi skontaktować przez peardev.
Z tej samej serii, James E. Flemer zasugerował moduł będący interfejsem
webowym dla tłumaczy umożliwiający tworzenie i utrzymanie katalogów
gettext (ogłoszenie).
Bugi i poprawki
Dzięki za znajdywanie błędów i pare poprawek otrzymują: Nigel Armstrong,
Adam Morton, Rob, Richard Heyes.
Nowe i proponowane pakiety
Mail_Queue
Często działania na stronach internetowych powodują akcje rozciągnięte w czasie
takie jak wysyłanie wielu maili. Korzystając z tej klasy możesz zapomnieć
o denerwującym czekaniu aż te wszystkie maile zostaną wysłane przez smtp czy qmail.
Mail_Queue zajmuje się pięcioma rzeczami:
- Umieszcza maile w tymczasowym kontenerze czekając na możliwość umieszczenia
w MTA, put( $from, $recipient, $hdrs, $body ); gdzie $hdrs i $body są w formacie mime.
- Pozwala określić po ilu sekundach Mail_Queue ma wysyłać pocztę.
- Może zachować lub usuwać pocztę po wysłaniu.
- Sprawdza poprawność dostarczenia poczty, próbuje wysłać je w następnej sesji
aż do skutku lub przekroczenia danego limitu prób. W przypadku porażki robi backup
każdego maila.
- Pozwala łatwo wysyłać pocztę w tle przy użyciu crontaba lub inaczej
DB_Grid
Yavor Shahpasov zasugerował
moduł udostępniający dynamiczne połączenie między bazą danyche (tablica lub sql) i
i tabelą (html lub czysty tekst).
File_Repository
Mike McCallister zaproponował moduł przechowujący pliki własnego autorstwa, bardzo
ważny przy znacznych ilościach plików. Rzeczywiście, zauważyliśmy szybki
spadek wydajności systemów operacyjnych z tradycyjnymi plikami kiedy tylko
ilość plików w katalogu staje się poważna. Ten moduł ma być użyteczną alternatywą
Bardzo ciekawe właściwości, możesz się z nimi zapoznać w ogłoszeniu.
Spread API
George Schlossnagle zaproponował dodanie interfejsu spread do PECL. Spread jest
narzędziem udostępniającym rozsyłanie wiadomości o wysokiej wydajności i
odporności na błędy przy przesyłaniu przez zewnętrzne i wewnętrzne sieci,
więcej informacji dosepnych jest na stronie
Spread. Interfejs PHP jest aktualnie dostępny tu: http://www.omniti.com/~george/php_spread/php_spread-1.1.tar.gz.
Rozszerzenie dźwiękowe
Tony leake zasugerował
dodanie własnego rozszerzenia dźwiękowego do PECL. To pozwoli używać php do pisania
zaawansowanych aplikacji zapisujących i przetwarzających dźwięk - takich jak
nagrywarki wielościeżkowe. W przyszłości zostanie dopisane więcej funkcji
wysokiego poziomu, żeby uczynić składnię ecasound prostszą. Więcej informacji dostępne tu: http://www.webwise-data.co.uk/php_audio/php_audio_extension.html.
Rozwój
Ruch w CVS w tym tygodniu odbywał się w następujących pakietach: Log, LiveUser, Python, XML_Transformer,
HTTP_Request, Documentation japonaise, DB_DataObject, DBA, HTML_QuickForm,
Net_Ping, Tree, Net_DNS, Net_Whois, Crypt_RC4, HTTP_WebDav, MDB, peardoc/FAQ,
Mail_Queue.
Nowa i uaktualniona dokumentacja
Nic nie zmieniono ostatnio.