Pokud se budeme bavit o nejlepším současném editoru/IDE pro PHP, tak ještě o level výš je placený Zendovský Neon.
Nicméně mezi free vývojovými prostředími nemá skutečně PDT konkurenci.
Před necelým rokem jsem psal článek o výběru PHP editoru. Od té doby se situace celkem dost změnila, a proto jsem usoudil, že je nejvyšší čas napsat volné pokračování.
Před rokem jsem jako vítěze vyhlásil editor PHPEdit. Ten má však jednu podstatnou nevýhodu - není zdarma. Dá se sice požádat o free osobní licenci, ale nevím, jestli ji dávají každému.
Dnes bych vám rád představil vývojové prostředí Eclipse PDT. Velice dlouho jsem PHP projekty psal pouze v PSPad editoru a myslel jsem si, že žádné napovídání kódu ani jiné fičury nepotřebuji. Po krátkém testování PDT jsem si ale na jeho komfort práce velice rychle zvykl a už bych neměnil. Výtečné na PDT je, že programátora nutí k psaní kompletních PHPDoc komentářů (tedy pokud chce plně využít možností napovídání PDT), vygenerovat dokumentaci k projektu tedy už pak bude hračka. Kvality tohoto IDE potvrzuje i fakt, že si ho společnost Zend vybrala jako základ pro své komerční Zend Studio.
PDT si velmi dobře rozumí se Zend Debuggerem. Zend Debugger je sice kombinovatelný se Zend Optimizerem, ale narozdíl od jeho konkurenta Xdebug neumí profilovat.
Stáhneme tedy plugin pro PDT a samotný debugger. Plugin rozbalíme a nakopírujeme do příslušných složek PDT. Debugger rozbalíme, vybereme příslušnou verzi PHP (např. 5_2_x_comp pro PHP 5.2.5) a zkopírujeme ZendDebugger.dll do složky s rozšířeními PHP (např. C:/PHP/ext). Následně doplníme do php.ini několik řádek:
[debug] zend_extension_ts="C:PHPextZendDebugger.dll" zend_debugger.allow_hosts=127.0.0.1 zend_debugger.expose_remotely=always
Pokud používáte Zend Extension Manager, budete muset dllko umístit do podsložky označující verzi php (např. C:/PHP/ext/php-5.2.x/ZendDebugger.dll) a těch pár řádek bude vypadat spíš nějak takto:
[zend] zend_extension_ts="C:Program FilesZendZendOptimizer-3.3.0libZendExtensionManager.dll" zend_extension_manager.optimizer_ts="C:Program FilesZendZendOptimizer-3.3.0libOptimizer-3.3.0" zend_optimizer.enable_loader=0 zend_optimizer.disable_licensing=1 [debug] zend_extension_manager.debug_server_ts="C:PHPext" zend_debugger.allow_hosts=127.0.0.1 zend_debugger.expose_remotely=always
Pokud používáte PHP jako modul Apache, restartujte nyní Apache. Otevřete stránku s výpisem phpinfo(). Někde okolo spodní části první stránky by už měla být vidět hláška:
with Zend Debugger v5.2.12, Copyright (c) 1999-2007, by Zend TechnologiesPokud ano, můžeme pokračovat na nastavení PDT.
V prvním kroku přidáme odkaz na binárku PHP. Zvolíme window -> preferences, rozklikneme PHP a zvolíme položku PHP Executables. Zde navolíme správnou cestu k php.exe, případě php.ini.
Pokračujeme konfigurací debuggeru. O pár řádek výše nad PHP Executables zvolíme Debug. Nastavíme Zend Debugger a námi přidanou binárku. Pokud jste postupovali správně, měl by být debugger již plně funkční.Pokud se budeme bavit o nejlepším současném editoru/IDE pro PHP, tak ještě o level výš je placený Zendovský Neon.
Nicméně mezi free vývojovými prostředími nemá skutečně PDT konkurenci.
Jaké má Eclipse HW požadavky?
#2 Jan Tichý: Zend Neon je sice funkcemi o level výše, ale za sebe musím říct, že pokud brzo nevydají update ve kterém opraví chyby jako rozpadajicí se foldy a zamrzání celého IDE, tak budu nucen přejít asi zpět k PSPadu. :-)
Musim jedine souhlasit. Prechoz z PSPadu na Eclipse byl celkem rychly a prijemny. Napovidani je vysoce navykove a kdyz se pokusim znovu neco psat v PSPadu tak hodne chybi. Jedina vec co mi vadi je obcasne zamrzani a bug ve foldingu (rozvijeni/svijeni). Zavrit a znovu otevrit soubor pomuze, ale je to otravne.
Ale na javu jsou stejne lepsi fazole :)
#2 Jan Tichý: Je pravda, že ta srovnávací tabulka Zend Studia vs. PDT vypadá docela přesvědčivě, ale 400$ pro mě jako studenta není zrovna málo...
Přestože sem si velice oblíbil PSPad, zkusil jsem stáhnout PDT a vypadá slibně :) Jenom jsem teď trochu zmatený v tom, co PDT nazývá projekty. Nemůžete mi to někdo přiblížit? Mám složku, která je document rootem serveru a v ní všechny soubory (weby). Jak je můžu načíst do PDT jako projekt, se kterým budu moct dál pracovat (spouštět jako stránku, spouštět v debuggeru...)? V PSPadu je na to funkcička "Vytvořit projekt z adresáře" :)
#7 Shabbi: V PDT je to obdobné. Stačí dát New - PHP Project a zadat jméno shodné s názvem složky, kde projekt máš. Předpokladem je, že máš workspace PDT shodný s tvým document rootem.
#8 Dundee: A jaké jméno (anebo spíš adresu) mám použít, když je web přímo v document rootu, tzn. není vnořený v žádné další složce? Křičí to, že se adresa projektu kryje s adresou workspace, ale kdybych pro workspace použil o úroveň vyšší složku (aby mohl být document root tou "složkou projektu"), tak by potom přišly problémy se spouštěním skriptů, protože by se spouštěly z jiné složky :(
#2 Jan Tichý: Svatá pravda :-) Zamrzání IDE mě také štve, zamrzalo mi i PDT.
Co je skutečně dost pro kočku je zatím Zendovský "HTML WYSYWIG" pohled, obzvlášť v módu Design/Source, po každém stisku klávesy člověk i na rychlém stroji čeká, než si IDE přelouská momentálně chybný kód (nedokončený tag). Při updatu mi to pokaždé na http://zend.com/neon vyhodí chybu že se nepodařilo připojit... máte někdo stejný problém?
#6 Dundee: Tabulka je přesvědčivá, ale celkem nafouklá, min. polovina těch věcí jde do Eclipse/PDT nějak dodat. Např. SVN, PHP Code Beautifier, PHPUnit, Profiler (Xdebug + WinCacheGrind)... Akorát to není tak "komfortní". Já si Zenda koupil před měsícem, za zaváděcí cenu $350 včetně VAT. A jelikož mě PHP pár let živí, tak mi to nepřišlo zas tak moc, vzhledem k tomu, že asi jako většina z "nás", uplatňuju už po několikáté náklady paušálně že ... :-)
#9 Shabbi: ??? moc nerozumím s čím máš problém, ale nastavení mám takovéto:
Worskpace - D:\workspace
Projekt - D:\workspace\projekt1
Apache - alias \work -> D:\workspace
K webu resp. ke skriptum se pak dostanu, tuto adresu nastavim i pro debugger
http://localhost/work/projekt1/jmenoskriptu
#9 Shabbi: #10 Wojtha:
Čekal jsem, že se řádky zalomí automaticky, tak pro jistotu ještě jednou:
Nastavení PDT/Zend/Apache mám takovéto
Worskpace - D:\workspace Projekt - D:\workspace\projekt1 Apache (dir + alias) - \work -> D:\workspaceK webu resp. ke skriptum se pak dostanu na této adrese: ( tuto adresu nastavim i pro debugger)
http://localhost/work/projekt1/jmenoskriptu
#11 Wojtha: Tak ani to CODE nezafungovalo. Dundee máš to filtrování ňáký rozbitý :-)
#11 Wojtha: No můj problém je takový, že používám virtual hosty - pro každý projekt jeden (protože používám v adresách na začátku zpětné lomítka) a adresa je http://localhost1 a odpovídající adresář D:\web\ws1 ... a když nastavím workspace na stejnou adresu, nepůjde ve stejné složce vytvořit projekt. Vytvoří se ve vnořené a při spouštění "Debug as PHP Web Page" se snaží otevřít http://localhost1/jmenoprojektu/ což je kvůli adresám špatně :(
Jinak teda musím říct, že PDT vypadal velice slibně, ale už sem u nastavování strávil několik hodin a stále to nefunguje ... v PSPadu bych za tu dobu napsal dobrý kus kódu :-)
Omlouvám se, že tady pořád otravuju :-p Problém s adresama jsem už asi vyřešil. Teď už mám jen problém při debugu s výstupem. Ať se dívám na debug output anebo browser output, je tam místo výstupu změť znaků. Všechny soubory mám v UTF8 a všiml jsem si, že defaultní kódování je CP1250. Sice jsem ho všude přehodil, ale pořád je tam nějaká zrada...
#12 Wojtha: To bude tím, že mám zakázané vnořené značky...Tedy např. tučné písmo v kódu. Opravil sem ti to :)
#14 Shabbi: Mě UTF normálně funguje. Problém bude buď v nastavení souboru (File -> Properties) Případně nastavit defaultní kódování pro projekt (Project -> Properties). S konzolou jsem měl myslím podobné problémy, ale to mě moc netrápí, protože jí moc nepoužívám. Ladim z 90% přes browser.
Jinak bacha... tim nastavenim v kódování v eclipse se změní jen interpretece kódování pro eclipse, ne fyzické kódování souboru (!). Takže konverzi kódování prováděj v PsPadu ...
Závěr :-) Zkontroluj nastavení kódování v Eclipse + Hlavičku souboru + Fyzické kódování souboru
Osobne pracuji v Zend Studiu 6. Jako IDE je asi jeden z nejlepsich, bohuzel Eclipse na kterem je to postavene je pekny smejd. Zkousel jsem i samotny Eclipse, ten zase neumi absolutne nic.
Mezi moje hlavni problemy, ktere me fakt stvou:
- dost casto pada (chyba na strane paskvilni Javy),
- vypadava bav. syntaxe,
- prace s SVN je naprosto tragicka
* nedokaze vytahnout jinou revizi nez aktualni
* nulovy DIFF - jen ubohy text soubor, bez bar. syntaxe co a kde bylo odebrano, co bylo pridano atd.
- nemoznost foldovani vlastnich casti kodu (jsem zvykly z Vimu),
- po spusteni Update Zendu se to komplete rozese.. a je nutne smazani a cela instalace znova,
- cas od casu se mi stane, ze po otevreni Zendu to skonci na `Buiding project` a jedina moznost je smazat adr. `.cache`,
- naprosto tragicky je taky na PHP formater, ktery prasi i HMTL kod a neda se nijak rozumne nastavit. Samotne PHP formatovani take neni dotazene do konce,
- hot keys v podstate funguji jen nektere.
Osobne si myslim, ze prechod na jadro Eclipsu, je v soucasne dobe spise krokem zpet. Dlouho jsem pracoval v Zend Studiu 5.5 a tam takovehle problemy nikdy nebyly.
Nicmene, na poli soucasnych IDE je Zend nikoliv Eclipse jeden z nejlepsich editoru, co je. Clovek musi ale ignorovat dost bugu, ktere podle me zapricinuje, paskvilni Java.
#17 Jirik: Pokud ale to té úvahy zapracuješ i poměr cena/výkon, tak si myslím, že má PDT ještě stále navrch.
#18 Dundee: Ano to ano. Treba se to s dalsi verzi zlepsi. Pevne tomu verim. Na druhou stranku, Eclipse je na svete cca 6 let (ne-li dele) a neni to nic moc, co se tyce stability a jednoduchosti obsluhy.
Eclipse PDT jsem vyzkoušel a velmi se mi zalíbil. Jedna vlastnost mi však vadí a nikde jsem nenalezl, jak se jí zbavit: po uložení souboru již nelze použít UNDO. Nepřehlédl jsem to někde v nastavení?
#20 Jan Krejčík: Znáte to, jak něco někam napíšete a hned po tom zjistíte, že to bylo úplně zbytečný? Tak to je přesně ten případ... Funguje to dobře, nevím, proč mi přišlo, že ne :)
Zdravím,stahl jsem si eclipse PDT ale pod linuxem mi to haze tenhle error.
An error has occurred. See error log for more details.
org.eclipse.emf.ecore.util.EcoreEMap$DelegateEObjectContainmentEList
Eclipse se spiusti,zadam workspace a pak po nastartovani mi to vyhodi vyse uvedenou hlasku. Nevite nekdo co s tim? :-(
Díky za rady.[b][/b]
Ahoj,
tak isto som predtym pouzival PHPEdit a chcem prejst na Eclipse-PDT, ale nejak se do toho dostat nemozem dostat. Hlavne ma matie sprava projektov a debugovanie, nevies mi doporucit jak nato ? Alebo nejaky eng. manual, ktery by mi pomohel ? :) Dik
#23 Silver Zachara: no tak uz sem se dotoho dostal :) priklad zbytecneho dotazu
#23 Silver Zachara: Nevim cece. Jak jsem to holt chvili zkousel...
No vse jsem sprovoznil, vse mi funguje jak ma staci se stym chvili pohrat a sem pripravny prejit z PHPEdit na Eclipse, ale ani zanic nemuzu najit nejaky plugin, ktery mi bude zabezpecovat FTP synchronizaci.
Je tu par reseni - http://www.eclipse.org/eclipse/platform-team/target.php ale tady je poznamka, ze -> Note that these plugins are not under active development.
Mam nainstalovany Remote Explorer, ktery sice umoznuje editaci suboru primo na FTP i export na FTP, ale vyexportuji celuy projekt, tak se vse bude kopirovat znovu na FTP, coz je nezadouci.
Chtelo by to neco ve stylu, ze se prepisou jen soubory, ktery jsou novsi.
Jak ste toto vyresili, alebo jaky plugin pouzivate na FTP synchronizaci ?
Ideální je namountovat ftp server jako jednotku do systému (nebo i přes WebDav či SFTP) a pak vytvořit lokální projekt.
nac delat neco takoveho, to je zbytecna vec navic, mozna v krajnim reseni to radsi pouziju WebDAV. Skratka potrebuji klasicky publish ;) a na FTP prepisat jen zmenene subore, doufam ze neco rozumneho vyhrabu, ale jakekoliv navrhy jsou vitane
Přidám také vlstní názor:
Po instalaci se zdálo všechno ok, program překvapil pěkným prostředím, ale první soubor co jsem otevřel na mě vybafl s rozsypanými znaky češtiny.
Kódování používám UTF-8. Nevím jestli je to potřeba někde přenostavovat, ale nic jsem nenašel. Takže zatím to vidím na starého dobrého PSpada ...
Já mam v nastaveních nastaveno kódování utf-8 a vše jede OK.
#30 Martin H.: Aha. Tak už je to OK. Ona tam byla možnost default (cp koliksi) a tak jsem myslel že je ještě někde globální nastavení a nechtěl jsem se v tom vrtat.
Tak snad se s tím někam pohnu.
#17 Jirik: Paskvilni Java? Neexistuju dobre a zle programovacie jazyky. Existuju len dobri a zli programatori
PDT si velmi dobře rozumí se Zend Debuggerem. Zend Debugger je sice kombinovatelný se Zend Optimizerem, ale narozdíl od jeho konkurenta Xdebug neumí profilovat.
Toto jsem moc nepochopil, můžeš to prosím přepsat nějak jinak, abych to pochopil i já? ;) Dík.
#26 Silver Zachara: To nikdy neupluadujete projekty na ftp ? Podelte se s informacemi a neskudlite si je jen pro sebe :D
#33 spaze: Pokusím se. PDT umí pracovat se dvěma debuggerama: Xdebug a ZendDebugger.
Výhoda Xdebugu je, že se pomocí něj dají vytvářet "profiling information", které pak můžeš prohlížet pomocí KCacheGrind a najít tak úzké hrdlo své aplikace. Xdebug se ale nedá použít zároveň se ZendOptimizer.
Naproti tomu ZendDebugger umí jen debuggovat, ale dá se provozovat i se ZendOptimizerem a subjektivně mi přišel i lépe propojený s PDT (instaluje se pro něj extra package do PDT).
#26 Silver Zachara: Ja si na takove veci pisu Ant buildfily. Je to reseni fungujici at uz pouzivam Eclipse na vyvoj v PHP, J2EE nebo v Pythonu a daji se tam resit vsemozne vyjimky a detailni nastaveni (kdy a kam deploynout tenhle konfigurak, kdy jiny, co jo, co ne, co udelat predtim, co potom...).
A hlavne mam jistotu, ze kdybych nekdy z nejakeho duvodu potreboval ty ukony provest v plne mire mimo Eclipse, tak muzu. Ant je na nem naprosto nezavisly.
Kdyby ti moc vadila Java, muzes zkusit Phing -- to je klon Antu v PHP.
To vypada zajimavo. Mohli by ste mi to trochu priblizit. Dost dobre nechapu princip.
Udelejme to na prikladu nahrani meho projektu na FTP, kde je ten isty projekt a kdyz na mem disku jsou data aktualnejsi nez na ftp tak se prepisi, kdyz ne tak se neudela nic.
Vubešc nechapu princip, napisu jak jsem to pochopil a jak si to predstavuji ze to funguje.
Napisu si nejaky kod v PHP, ktery bude vysse zmineny proces obstaravat a tu koncim.
Kde je ten kod ulozeny, jak se spousti, byl by univerzalni pro vschny me projekty ? Nebo se to nejak integruje do Eclipse IDE a mohu to pak dal konfigurovat (tym myslim prihlasovaci udaje a jmeno ftp serveru).
Staci mne jen nakopnout.
Java mi vadi lebo v programovat neumim, takze ne ze by mi valdila ale je to prekazka.
Dekuji za objsaneni.
Já používám plugin do eclipse ESftp a pro repository Subeclipse.
ESftp mám nastavený na klasickou klávesovou zkratku CTRL+ALT+S, tj. změny v souboru se uloží lokálně i přímo na můj Linux server přez SSH. V kombinaci SSH + Repository spravuju a udržuji projekt jak na lokále tak na webu v identickém stavu. Když dělám posílám ihned změny na web a když končím práci (dělám to vždy na konci dne) commitnu lokální projekt a na webu vše synchrnozuje s pomocí subversion.
http://www.antimatter-studios.com/sites/chris/projects/esftp/
http://subclipse.tigris.org/
#38 Audant: a podporuje to ESftp i normalni ftp ? teda ne sFTP ?
#32 avatar: Jj, presne. Paskvilni Java. Mam bohuzel spatne zkusenosti se vsemi aplikacemi, ktere bezi pod Javou. Ono je to spise samotnym Eclipsem, protoze ZendStudio 5.5 nemelo problemy. Ve verzi 6 IDE dost casto zamrza, vypadava bar. syntaxe, nove pluginy meni a meni nastaveni puvodnich, pri horsim nektere uplne prestanou fungovat. Stejne problemy jsem zaznamenal jak na Linuxu tak na Widlich. Taky je neskutecne narocne na HW. Mam v praci i doma QuadCore, 4G RAM a prace se Zendem (treba pri editaci CSS) je naprosto silena. Tech problemu se Zendem je vicero. Zlaty VIM, asi se k menu opet vratim.
#40 Jirik: Ja myslim, ze Zend to urcite doladi do dokonalosti, vzdyt je to vlajkova lod na trhu.
Ale taky stebou souhlasim ohledne javy, tak isto nemam rad vse, co bezi v Jave enviroment.
Ale moc teho navyber neni, ja ani zaboh*a nemzu najit nic na synchronizaci projektu s FTP, tak ficim eclipse + filezilla. Taka zakladni vec kua, stve mne to.
#41 snop: Já si nemyslím, že by byla dnes Java ještě stále tak paskvilní. Lidem ze Sunu se podařilo to běhové prostředí opravdu vypilovat a běží to dost spižně.
Řekl bych, že tady bude spíš problém u samotných vývojářů Eclipse, případně obecně Javových aplikací. Javu dnes umí skoro každý a tak se do vývoje často zapojují i lidé, kteří nejsou příliš zkušení.
Osobně Javu ale také moc rád nemám. Zdá se mi příliš upovídaná a omezující.
V Eclipse PDT mám problém se zabudovaným html validátorem. Pokud dělám stránky xhtml 1.0 strict a mám to v !doctype uvedný, tak Eclipse označuje "warnings" i u elementů, který jsou napsaný striktně, např. u <br />. Je nějaká možnost jak si ten validator dokonfigurovat nebo nějakej lepší plugin pro podporu xhtml? Jinak co se týče php se mi Eclipse líbí a je s ním o dost příjemnější práce než s PSPadem, kterej jsem používal do teď :)
Začal jsem používat PDT - předtím jsem zkoušel Zend studio. A zatím mi zde chybí jedna věc a to lepší napovidání. Zend studio napovídalo i klasické php funkce typu session_start() atd.
Ovšem PDT napovídá pouze mnou vytvořené proměnné, metody třídy atd. Používám také Zend Framework a napovídá i metody těchto tříd, bohužel už ovšem ne jednotlivé třídy.
Dá se tedy někde zapnout či nastavit komplexnější napovídání? Toto mi přijde opravdu slabé a po práci v Zendu hodně otravné, tam jsem napsal pár prvních písmem a případně již mě nápověda nakopla ke správnému názvu funkce..
#44 fousek: skus ctrl+space a pri jednotlivych parametroch ctrl+shift+space, myslim ze napovidani se da nastavit po nejakem casovem intervali ti to vyskoci same ale nechce sa mi to hledat
#46 fousek: sem to nenasel a asi proto ze se to nastavit neda, ja tez vzdy mackam ctrl+space.
Zatim to eclipse pdt nepodporuje. Mozna se dockame ve verzi 2.0, kdyz to chces skusit uz jsou nejake beta verze tak si to muzes stahnout a odskouset
Mate nekdo skusenosti s apatana pluginem pro eclipse ? ja jsem ho naistaloval, je to nadhera, konecne jsem nasel uspokojivou synchnozaci s ftp az nad me ocekavani, aptana plugin krasna doplnuje syntaxi v *.js souborech, ale ani zanic nemuzu rozchodit doplnovani syntaxe v *.html souborech a to mezi tagy <script></script> (script)(/script) (pro jistotu nahodou to script odtrsani, ty script tagy). Tak isto nemzu mezi temito tagy umistit breakpoint.
Mno snad to nekdo zaregistruje a poradi.
Fajn clanok ale chcelo by to aj troska podrobnejsie vysvetlenie pre uplnych amaterov ;) to ze kam umiestnim php.exe a php.ini to som sa dozvedel ale neviem kde tie samotne subory vziat, ci ich zkopirovat z tych pluginov alebo alebo ten ini sa ma vytvorit cisty alebo ako...
ok tak to sa mi uz podarilo nejak vyhrabat. Len teraz este zistit ako spojazdnit ten web page lebo ked dam run web page tak tam nikdy nic nejde
Protoze v clanku chybi lomitka a definice extension a protoze nespravne zadani (se spatnym typem lomitek atd) Zend debuggeru vam poradne zavari, radsi pridam komentar s opravou.
[debug]
zend_extension_ts=C:\PHP\ext\ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
extension=C:\PHP\ext\ZendDebugger.dll
A doplnim, ze Zend debugger pluggin pro Eclipse se umi v nove verzi doinstalovat a nastavit sam (nastavi i exe files, atd), pokud pridate v menu Help -> Install new software adresu http://downloads.zend.com/pdt a spustite zde instalaci Zend CE features / Zend debugger feature
Právě jsem si stáhl Eclipse PDT. Netušíte někdo jak vytvářet nové projekty tak, aby mi PDT vytvořil adresářovou strukturu ZF? Díky za pomoc
me se velmi osvedcila Aptana plugin pro Eclipsu PDT