Duben 12th, 2007PDT a OOP

Každý, kdo chce efektivně pracovat s objekty, musí použít nástroj, který mu umožní automaticky doplňovat potřebné informace. Jinými slovy, použije nějaké IDE, které usnadní práci při psaní kódu.

Když si představím, že vytvořím objekt, který obsahuje několik metod, rád bych tyto metody rovnou volal. U jazyků, které dodržují striktně typovou kontrolu, je to jednoduché. Každý parametr metody musí mít typové označení, stejně tak návratová hodnota. U PHP je situace o dost horší. Jediné, co mi samotné PHP umožňuje je, že u parametru metody mohu definovat o jaký typ objektu se jedná. Navíc jsem omezen pouze na objekty a pole.
Jenže metody mi často vrací další objekty a tyto objekty někde dál používám. Samotný plugin od ZENDu (PHP Development Tool = PDT) na to jde od lesa. Dovolí mi používat komentáře, ve kterých si jasně definuji, o jaký typ se vlastně jedná. Lepší než další povídání bude ukázka.

class TridaA {
     public function foo() {}
}
class TridaB {
     private $tridaA;
     public function __construct() {
          $this->tridaA = new TridaA();
     }
     public function zavolejFoo() {
          $this->tridaA->foo();
     }
}
  

Z ukázky je jasné, že atribut třídy B je vlastně objekt z třídy A. Eclipse mi sice umožní automaticky zavolat metodu foo();, ale pouze v konstruktoru, protože dál už nevidí. V metodě zavolejFoo(); mám prostě smůlu. Mám ale možnost samotný atribut třídy okomentovat, čímž vyjádřím, že se jedná o objekt třídy A a pak již vše funguje, jak má.


/**
   * @var TridaA
   */

private $tridaA;

Další věcí budiž parametry metody. Na začátku jsem psal, že PHP sice dovoluje definovat typ pro parametr metody, ale ne vždy tak činíme. Pokud typovou kontrolu na parametr metody definovat nechci, ale chci, aby Eclipse poznalo, že se jedná o tu či onu instanci objektu, jednoduše metodu okomentuji.


/**
   * @param TridaA $tridaA
   */

public function setTridaA($tri­daA) {
     $tridaA->foo();
 }

U definování samotného parametru metody je třeba mít na paměti, že musím také definovat, o jaký parametr se vlastně jedná.

Poslední věcí je návratová hodnota metod. K tomuto mohu opět použít komentář a říci tak Eclipse, o jaký návratový typ se vlastně jedná.


/**
   * @return TridaA
   */

public function getTridaA() {
     return new TridaA();
 }

Pokud tedy pracujete s objekty a používáte k tomu jazyk, který má dynamické typování, jistě Vás často naštve, že nevíte, co vlastně v danou chvíli proměnná obsahuje. Toto Vám sice nezaručí, že nebudete chybovat při zjišťování typů, ale zaručí, že samotné programovací prostředí Vám řekne, co teď vlastně používáte.

Jestli jste neměli v oblibě komentáře, tak nyní si je určitě zamilujete :)

O psaní komentářů by se dala napsat celá kniha, ale o tom zase jindy.

Nejenom talent a zkušennosti jsou potřeba pro úspěšný vývoj aplikací. Další vlastností je vývojové prostředí IDE. V dnešní době je možné nalézt spoustu jednoduchých editorů, které jsou schopny zvýrazňování syntaxe popřípadě další zajímavé vlastnosti.

Nejprve udělám malé srovnání nejznámějších editorů a poté si vyberu svého favorita :)

JEdit
Jeden z dobrých editorů je jEdit. Po potřeby úprav jednoduchých skriptíků ideální řešení. Mezi jeho hlavní přednosti jistě patří to, že je multiplatformní. jEdit je napsán v Javě. I přesto je velice rychlý a obsahuje možnost doinstalovat spousty pluginů.

PSPad
Velice populární editor, od českého vývojáře. Mezi jeho hlavní přednosti patří rychlost a jednoduchost. Velkou nevýhodou je, že dokáže pracovat pouze pod Windows. Ano linux verze se nekoná. Je vhodný spíše pro začátečníky a drobné úpravy.

SciTE
Na počátku jednoduchý editor, který ale vyniká svou rychlostí a konfigurovatel­ností. Je možné ho používat i pod linuxem. Po dobré konfiguraci zvládne i složitější úkony. O dalších informacích se můžete dozvědět např. u Jakuba Vrány.

Vim
Legendární editor textů linuxových nadšenců. Mezi jeho nesporné výhody patří extrémní rychlost a konfigurovatelnost. Velkou nevýhodou ovšem je to, že koncept Vimu je naprosto odlišný od ostatních editorů. Po prvním setkání vězte, že budete dlouho hledat, jak editor vypnout. :)

ZEND Studio
Skutečné IDE pro vývoj webových aplikací. Pokud to s PHP myslí někdo skutečně vážně, jistě výběrem tohoto IDE neprohloupí. Mezi jeho nevýhody patří to, že není zdarma a také, že je primárně určen pouze pro PHP.

Eclipse PHP IDE
Další skutečné IDE pro vývoj aplikací. Mezi jeho přednosti patří to, že je multiplaformní, dokáže se po instalaci patřičných pluginů, chovat jako vývojové prostředí téměř pro cokoli. Mezi jeho nevýhody patří snad jen to, že má náročnější požadavky na hardware a na začátku složitější konfiguraci. Existuje i placená verze ve formě MyEclipse, která obsahuje již nakonfigurovanou sestavu s další podporou.

Existuje samozřejmě nepřeberné množství editorů a IDE pro tvorbu webových aplikací, které lze na internetu dohledat. Mým hlavním záměrem bylo sepsat (z mého pohledu) nejpoužívanější nástroje pro psaní aplikací.

Po několikaletém programování ve SciTE jsem začal hledat něco, co by mi umožnilo editor povýšit na komplexní IDE se spoustou možností. Po testech s jEditem apod. jsem nakonec skončil s Eclipse. Mohu říci, že jsem po několikadenním testování a zkoušení dostal do ruky špičkový nástroj, který je navíc zdarma.

Eclipse je primárně tvořen pro vývoj Java aplikací. Navíc samotné IDE je psané v Jave, což umožňuje jeho použití na více OS. Samotný projekt Eclipse je dotován firmami jako je IBM, Red Hat či SuSE. Obsahuje extrémní množství pluginů jak pro samotné programování, tak i modelování databáze či v UML. Počet podporovaných jazyků lze najít na oficiálních stránkach, společně s pluginy pro jejich spuštění.

Osobně využívám plugin od ZENDu PHP IDE společně se WEB Tools (i z důvodu závislostí), dále plugin QuantumDB pro prohlížení databáze (používám na Oracle a MySQL) a SQL editor. V Eclipse jako platformě se meze nekladou. Je možné nad Eclipse vytvořit jak vlastní projekt, tak použít nějaký již napsaný.

O tom, co všechno Eclipse obsahuje a je možné v něm použít by vydalo na nejednu knihu. Já se zaměřím na podporu PHP přímo od ZENDu, HTML, CSS, JS a MySQL. Na závěr jen malá ukázka toho, co si vlastně pod IDE představuji.

Příště se budu zabývat prvním spuštěním Eclipse (pod Windows i Linuxem) a instalací pluginů.

© 2007 finc weblog | iKon Wordpress Theme by Windows Vista Administration | Powered by Wordpress