- Zend próbuje powielać pomysły J2EE starając się "podrasować" i ukryć niedostatki iPHP, ale to daje tylko większą komplikację w jego opanowaniu przez "masy". Poza tym nie ma jako tako serwera aplikacyjnego w prawdziwym tego slowa znaczeniu.
- Zaletą PHP jest to, że można w nim wystartować od razu bez dużych nakładów na serwer, ale w miarę wzrostu złozoności i rozmiaru aplikacji zaczyna się coś w nim zakleszcza i zaciera.
- TAG i JSTL to próba podejścia do zmniejszenia komplikacji kodu i stosowanych technik potrzebnych do stworzenia aplikacji internetowej poprzez przerzucenie komplikacji na obszar deklaratywny (znaczniki) zamiast podejścia proceduralnego.
- Stosując frameworki i niezbędne do tworzenia aplikacji szablony w j. programowania doprowadzam do mistrzostwa powielania pewnych stałych elementów gry (otoczek obiektów) robiąc to w sposób małpy doskonałej aż w końcu dochodzi do napisania czegoś w stylu "return stała".
- Mało doceniana, ale nadal ważna technologia "pomostowa" - połączenie grubego klienta z możliwością połączenia z Internetem (MS proponuje usługi webowe w klasycznym wykonania np. MS Live, Yahoo -Widgets, Google - Gear). Do gry wchodzi Mozilla - webRunner (a w nowym wykonaniu Prism).
- Dostęp do wspólnego pola pamięci (do komunikowania się) w technologii serwera aplikacji J2EE pozwala na bardzo wyszukiwane przetwarzanie danych wchodzących (response - pamiętajmy, że wszystko kręci się wokół klienta) i wychodzących (request) w aplikacji Internetowej. Przykład - formularz wysyła dane do serwera (tj. żąda danych), przyjmuje je servlet, który przetwarza je (dopisuje do strumienia danych request inne obiekty np. kolekcje zleceniem req.setAttribute() i przesyła dalej np. do JSP (jak poprzez Dispatchera). Wykorzystuje się programowanie strumieniowe (stream) i rurociągi (pipes).
- Duży potencjał tkwi w wykorzystaniu AJAX w aplikajach PHP i JAVA ciekawe jakich technologii używają (wiem, że w JAVA jest to DWR i GWT, a w przypadku ZEND - nie wiem, PHP wiem SAJAX, nAJAX lub JPOP)
piątek, października 26, 2007
Pomysły:
wtorek, października 23, 2007
niedziela, października 21, 2007
XML i PHP:
- PHP 5.0 realizuje dostęp do XML poprzez SimpleXML. Inny tutorial o tablicach (http://www.motov.biz/php/php-arrays-the-ultimate-guide.html) i funkcjach. Do XML można podejść dwojako:
- SAX - czytać cześciowo dokument XML i uruchamiać specjalne funkcje użytkownika po napotkaniu interesującego nas węzła (callback)
- DOM - czytanie (bardzo rozrzutne) całego dokumentu do pamięci z zbudowanie drzewka odzwierciedlającego hierarchię dokumentu
- W PHP 5.0 wzięto na tapetę implementację biblioteki w C++ zwanej libxml2. Dodatkowe rozszerzenia zrobili: Sterling Hughes, Rob Richards and Marcus Börger.
- Duży wkład w prace nad zunifikowanym DOM - http://dean.edwards.name/weblog/
- Przykład:<?php
// set name of XML file
$file = "pet.xml";
// load file
$xml = simplexml_load_file($file) or die ("Unable to load XML file!");
// access XML data
echo "Name: " . $xml->name . "n";
echo "Age: " . $xml->age . "n";
echo "Species: " . $xml->species . "n";
echo "Parents: " . $xml->parents->mother . " and " . $xml->parents->father . "n";
?> - Modyfikacja:$xml->name = "Sammy Snail";
$xml->age = 4;
$xml->species = "snail";
$xml->parents->mother = "Sue Snail";
$xml->parents->father = "Sid Snail";
// write new data to file
file_put_contents($file, $xml->asXML()); - Inny przykład, operacja na atrybutach:<?php
// create XML string
$str = <<< XML
<?xml version="1.0"?>
<shapes>
<shape type="circle" radius="2" />
<shape type="rectangle" length="5" width="2" />
<shape type="square" length="7" />
</shapes>
XML;
// load string
$xml = simplexml_load_string($str) or die ("Unable to load XML string!");
// for each shape
// calculate area
foreach ($xml->shape as $shape) {
if ($shape['type'] == "circle") {
$area = pi() * $shape['radius'] * $shape['radius'];
}
elseif ($shape['type'] == "rectangle") {
$area = $shape['length'] * $shape['width'];
}
elseif ($shape['type'] == "square") {
$area = $shape['length'] * $shape['length'];
}
echo $area."n";
}
?> - Można stosować XPath:
<?php
// set name of XML file
$file = "ingredients.xml";
// load file
$xml = simplexml_load_file($file) or die ("Unable to load XML file!");
// get all the <desc> elements and print
foreach ($xml->xpath('//item[quantity > 1]/desc') as $desc) {
echo "$descn";
}
?>
Subskrybuj:
Posty (Atom)