Na prezentaci v Praze mne celkem zaujalo RadPHP. Ne že bych měl rád PHP jako jazyk, ale RadPHP mi připadal jako relativně dobrý nápad a tak jsem si ho chtěl aspoň vyzkoušet, když už ho mám jako součást RAD Studio XE.
Kdybych měl k něčemu RadPHP přirovnat, tak RadPHP je pro PHP v takovém vztahu jako je Delphi k Win32 API. Tj. nad základními elementy PHP je vystavena knihovna komponent inspirovaná VCL pod názvem RPCL, která pro PHP přináší komponentní model jako je v Delphi. Navíc přináší určitý stav do bezestavového HTML, tj. například napíši něco do Editu a po odeslání to tam zůstane aniž bych musel něco udělat.
RadPHP je už třetí verzí nástroje, přičemž ale první verze nebyla příliš vřele přijata. Pro třetí verzi byla aplikace hodně přepsaná a interně používá IDE z Delphi (samotná aplikace je psaná v Delphi 2010 a XE). Aplikace není původně přímo od Embarcadero, ale od firmy qadram, která také udržuje seznam ideí - brainstorm.qadram.com.
Nástroj se skládá z IDE (doplňování kódu, kontrola syntaxe, refaktoring, paleta komponent jako v Delphi 2010+), knihovny RPCL (lze používat i bez ní), debuggeru (výpis zásobníku, watch list, breakpoint) a publikačního wizarda.
Zároveň obsahuje svoji instalaci PHP a Apache. Tady jsem u sebe na Windows XP SP 3 narazil, protože mi to nefungovalo - problém Apache a lokalizovaných adresářů v XP (které ve Vistách už nejsou). Každopádně jsem nakonec rezignoval a po chvilce práce s programem FileMon jsem nakopíroval
"C:\Documents and Settings\radekc.TDEVELOPX\Data aplikací\Embarcadero\RadPHP\3.0\php\php.ini" někam kde je PATH, v mém případě do c:\windows.
Na obrázku hello word
Hello world
Pokud používáte Delphi tak to nebude žádný problém. Prostě dáme na formulář 3x Edit a 1x Button. U třetího editu nastavíme ReadOnly a poklepáním na tlačítko se nám vygeneruje prázdný OnClick handler se jménem Button1Click, kde jen napíši uvedený řádek (uvedu na ukázku generovanou třídu formuláře).
//Class definition
class Page3 extends Page
{
public $Edit3 = null;
public $Edit2 = null;
public $Edit1 = null;
public $Button1 = null;
function Button1Click($sender, $params)
{
$this->Edit3->Text = $this->Edit1->Text + $this->Edit2->Text;
}
}
Spouštíme
Klávesou F9 spustíme program a máme hotovo a můžeme si užít naši minimalistickou kalkulačku.
Breakpoint nastavíme jako v Delphi kliknutím vlevo v editoru a program se tam v případě průchodu zastaví.
Většina zajímavých věcí se nastavuje na "formuláři" (třeba šablony).
Přiznám se, že celkem ještě plavu s češtinou, jelikož se mi nějak mrší. Ale nějak to jít musí.
Deploy aneb jdeme ven
Volbou Tools-Deployment wizard spustíme generování pro web. Nejprve souhrn ohledně adresáře projektu a používaných komponent.
Komu a na co je vlastně tento nástroj určen? Asi je to zbytečná věc pro někoho, kde má malinkatý skript, ale pro větší (třeba i intraweb) weby to značně může ulehčit práci. Jinak autoři mají blog s návody, knihovna RPCL je na SourceForge a novinky na twitter.com/qadram.
Já osobně zatím nějak tápu ohledně češtiny, ale to je určitě můj (řešitelný) problém. Horší je (pro mně), že neexistuje kompilace, ale jen kontrola syntaxe (a ta nezachytí třeba neexistující komponenty).
A jen pro úplnost: V tomto úvodu jsem vůbec nepopisoval detaily jako je množství komponent (včetně např. google map, gridů, různých javascriptových komponent nebo podpory aplikací facebooku) a množství nastavení hlavní stránky, ale jen opravdový základ. Pro doplnění: RadPHP XE stojí 7600 Kč nebo je součástí RAD Studio XE. Zda se to vyplatí záleží pak na Vás. Možná o tomto nástroji ještě něco napíšeme.