Archív

Archív pro ‘php’ Kategorie

JetBrains PhpStorm

25.02.2010 1 komentář

Vývojových prostředí pro PHP je docela hojnost. Sám používám v práci Zend Studio 7.1 a doma Netbeans 6.8. Minulý rok přišla firma JetBrains, která je známá svým IDE pro Javu IDEA, s vývojovým prostředím pro PHP, které se jmenuje PhpStorm (dříve WebIDE). V současné době je nové IDE stále ve vývoji. Brzo se dočkáme beta verze a myslím do léta snad i finální verze.

PhpStorm (dále PS) je na platformě IDEA, což považuji za velkou výhodu. Dají se použít pluginy pro Ideu v PhpStorm. Kvalita pluginů v Idea mi přijde o poznání lepší než pro Eclipse.

JetBrains PhpStorm (WebIDE)

Hlavní přednosti vidím v těchto bodech:

  • Podpora pro Git, je to jediné IDE s opravdu slušným pluginem. Podpora pro SVN je samozřejmě také. Zkoušel jsem plugin pro Git v Netbeansech i Eclipse a nikde mi to moc dobře nefungovalo, nebo mi tam chyběli potřebné příkazy.
  • Vynikající editor, který je o poznání chytřejší než například v Netbeans. Je to vidět zvláště pokud něco refaktorujete. Pozná zda funkce již závorky má či nemá, nedoplňuje dvojité uvozovky nesmyslně jak se mi to stává často v Netbeans.
  • Podpora XSLT, XML. Pokud používáte jako šablonovací systém XSL tak to velmi ulehčuje práci. Podpora pro XSLT je i v Zend Studiu, ale tady to mají vyladěné do detailů. Mě to funguje spolehlivěji než v Zendu.
  • Multiplatformost je daná tím, že aplikace je napsaná v Javě a proto není problém ani Windows, Linux nebo Mac.
  • Podpora pro Smarty (pokud používáte)
  • Podpora pro PhpUnit
  • Podpora pro Debuggery (xdebug už funguje, zend debugger slibují)
  • Podpora pro Phpdoc (doplňování)
  • Editor s dopňovaním pro JS a HTML

Pěkná věc je třeba produktivity guide, radí co a jak dělat lépe:

JetBrains-PhpStorm-Productivity-Guide

JetBrains PhpStorm Productivity Guide

Nevýhody a nejasnosti v současnosti

  • Horší podpora formátovaní, chybí podpora checkstyle. Formátování lze celkem detailně sice nastavit, ale zatím nefungoval náhled a chtělo by to podporu pro PEAR, Zend checkstyle.
  • Zatím neznámá licenční politika a cena, ale předpokládám ze to bude podobné jako Zend studio, kterému chtějí konkurovat jak uvedli minulý rok na konferenci ZendCon’09
  • Zatím na linuxu chybí installler, na windows jsem to nezkoušel.
  • Chybí globální nastavení pro include path pro doplňovaní syntaxe, musíte do projektu přidat zatím ručně, líbilo by se mi to v globálním nastavení pro PHP.
  • Nepodporuje worksety. V Eclipse jsem si oblíbil worksety pro různé typy projektů (Zend, Nette, Examples,…), to mi přijde užitečné, ale není to nutné.
  • Chybí UI pro Phpunit, který je moc pěkně udělaný v Netbeans. Pokud programujete podle TDD je to dost užitečné.

Závěr
Myslím, že mezi IDE, které jsou zdarma mi přijde v současné době nejlepší asi Netbeans. Vývoj postupuje celkem pěkně dopředu, vylepšené automatické formátování v 6.9 bude jistě přínosem. Jedinou nevýhodu vidím v editoru, který se občas chová divně, ale dá se to přežít.

Z komerčních znám jen PhpStorm a ZendStudio a přijde mi práce v obou podobná. Jen v PhpStrormu jsou trochu dál. Je to tím, že IDEA jako prostředí je daleko před ostatními a spousta funkcí v něm obsažená pro Javu se do ostatním Java IDE pomalu dostává. Pro PHP je IDE od JetBrains sice nové, ale oni mají velké zkušenosti s vývojem IDE a myslí to s konkurencí pro Zend Studio vážně a na té práci je to vidět.

Pokud máte zkušenosti s PhpStorm na jiných platformách podělte se s ostatními v komentářích.

Categories: ide, php Tags: ,

NetBeans 6.8 a PHPUnit

28.12.2009 1 komentář

Pokud používáte pro vývoj v PHP nějaké IDE, je to většinou PDT based (Eclipse, Zend Studio) nebo Netbeans. Samozřejmě jsou tu i další a vznikají nové, které stojí za zmínku. Mě oslovilo WebIDE od autorů IDEA firmy JetBrains, kde si myslím roste velká konkurence Zend Studiu.

V práci používám primárně Zend Studio a pro sebe většinou Netbeans. V Netbeans nejvíce oceňují propojení s PHPUnit a pokud rád vyvíjíte metodikou TDD. V verzi 6.7 bylo propojení s PHPUnit již vytvořeno, ale mělo některé chyby, které mi vadili a díky také doufám mému reportování a spolupráci s vývojáři Netbeans odstraněny.

Nejvíce mi vadilo, že se nečetl konfigurační soubor phpunit.xml a nesprávně byla nastavená cesta při spuštění unit testů. Vývojáři to nakonec udělali tak, že cesta se odvozuje právě od konfiguračního souboru, pokud existuje, případně od spouštěných testů. Přibyla také záložka v nastavení projektu, kde se dají detaily nastavit.

Poslední detail, který se dostal do Netbeans bylo ještě zobrazování nekompletních a přeskočených testů v GUI, které nefugovalo. GUI vychází z parsování xml výstupu PHPUnit a umí zobrazit víceméně vše co xml soubor poskytne.

Myslím, že vývoj Netbeans pro PHP jde správným směrem, v další verzi přibyde jistě podpora pro Zend Framework, který používám já i když to nepovažuji za nijak nutné. Spíše bych ocenil doladědí editoru v detailech. Například pokud máte již funkci končící závorkami a provedete doplnění názvu pomocí autocomplete Netbeans nepozná zda závorky tam jsou či nejsou a nechová se podle toho. Jsou to detaily, ale mnohe tyto detaily v editaci mi pijou krev. Obdobně problémy s automatickým doplňováním závorek, apostrofů, často se chová divně.

Pokud porovnáte WebIDE a Netbeans tak v práci s PHP je to srovnatelné, ale pro to ostatní HTML, editace, JS, XSLT, XML tak WebIDE vede protože vychází z geniálního IDE IDEA, které považuji za nejlepší pro JAVU a nejen ji. WebIDE má také podporu pro Git co ocením.

Myslím, že ve IDE, které jsou zdarma Netbeans začíná podle mne už porážet PDT hlavně rychlejším vývojem a menšími nároky na hardware. Také jsem ocenil nativní podporu pro Mercurial, trochu mi chybí podpora pro Git.

Categories: ide, php Tags: ,

PHP CodeBrowser a Hudson

11.12.2009 Bez komentářů

Před časem se objevil nový reportovací nástroj, který vezme logy z PHPUnit, PHP_Codesniffer a umí je pěkně zobrazit.

Instalace je z PEAR (http://pear.phpunit.de/get/)

pear config-set preferred_state alpha
pear channel-discover pear.phpunit.de
pear install --alldeps phpunit/PHP_CodeBrowser

nebo z SVN

svn co svn://phpunit.de/phpunit/phpcb/trunk PHP_CodeBrowser

Integrace
Tento tool jde integrovat do CIE

Postup integrace do Hudsonu si ukážeme

  1. Potřebujete do Hudsonu doinstalovat plugin HTML Publisher Plugin
  2. Nastavíte build script by používal phpcb

    <target name="phpcb">
    <exec executable="phpcb" dir="${basedir}/source">
    <arg line="--log reports/logs/
    --source source/
    --output reports/phpcb/" />
    </exec>
    </target>
  3. Nastavíte HTML Publisher plugin, aby četl html, které vyrobí phpcbhudson_phpcb
    • HTML Directory to archive
      Cesta k reportům podle toho jak jste si to nastavili v build skriptu, u mne reports/phpcb/
    • Index page[s]
      Defaultně je index.html, ponechejte.
    • Report title
      Nastavte co chcete, dal jsem PHP CodeBrowser

Výsledek bude vypadat nějak takto:

hudson-phpcb-3

PHP_CodeBrowser sám o sobě nepřidává žádnou funkcionality, ale umožňuje získané výsledky pěkně a přehledně zobrazit. To se hodí a pokud jste příznivci použítí jednoduchého Hudsonu jako já, doufám že vám to bude k užitku.

PHP_CodeBrowser můžete samozřejmě použít i bez jakékoliv integrace, protože je to běžné HTML. Pokud používáte verzi z SVN jako já pozor na to, že verze pokud jí pouštíte symlinkem nefunguje úplně správně musíte být v adresáři kde máte PHP_CodeBrowser a je lepší zadat plné cesty k logům phpunit i zdrojovým kódům.

NoSQL Databáze v PHP

05.11.2009 Bez komentářů

Včera jsem byl na přednášce Honzy Krále na téma Nechoďte s kanónem na data aneb key value databáze. Přednáška nebyla jen o key value databázích, ale obecně o NO SQL.

Honza shrnul problémy RDBMS databází s ohledem na ACID a co můžou přinést jiné typy databází než sql. Například key value a dokumentové pro nasazení ve webových službách, kde mnohé také vznikly používájí je Google, Amazon, Facebook a jiní.

Přehled NoSQL najdete také ve wikipedii.

Key value databáze nebo úložiště

Dokumentové databáze

Toto téma je široké a hodně se o tom diskutovalo a Honza předvedl implementaci Twitter serveru v Pythonu a ukládání dat do Redisu. Lekce šlo kód škálovat a z jedné databáze začít ukládat do deseti různých.

CouchDb databáze je například nasazena v novém Ubuntu 9.10 a bude se její podpora pro Ubuntu One a synchronizaci dat určitě rozšiřovat. Pokud používáte Ubuntu, balíček s aktuální verzí najdete v repository. Za výhodu jednoduchého nasazení CouchDb je jeho REST api a pěkný webový klient pro administraci. Nevýhodou bude výkon ve srovnání s MongoDb, kde je nativní klient a dobrý jazyk pro dotazy. V CouchDb musíte pro psaní materializovaných pohledů používat javascript. MongoDb podporuje index a celkově je v mnoha věcech vyspělejší. Ale chybí například podpora v ubuntu, balíček nenajdete, musíte si ji zkompilovat sami.

Pro Zend Framework pokud vím se připravuje implementace CouchDb. Jak použít v Zend Frameworku MongoDb pro ukládání logů v kombinaci s Zend Tool ukazuje Raphael Stolt.

Pokud víte o větším nasazení těchto databází nebojte se to uvést v komentářích. Například portály jobs.cz a prace.cz používají memcache, ale takových nasazení budou stovky. Má někdo v Čechách nasazené ve velkém CouchDb nebo MongoDb?

http://arbitracker.org/phpillow.html
Categories: php Tags:

Co mě zaujalo na ZendConu 2009

Ve dnech 19-22 října se v San Jose v Kalifornii konal 5. ročník konference ZendCon (Zend PHP Conference for Developers). Na této konferenci je skvělé to, že je opravdu pro vývojáře a i když jsem se tam letos nedostal tak si ze slidů z konference a probíraných témat něco odnesu. To se tolik nedá říci o lokálním Webexpu, kde jsou přednášky cíleny spíše na začátečníky a na ty co s danou problematikou většinou nepřišli do styku.

Nejvíce mě zaujaly přednášky od těchto přednášejících:

Ilia Alshanetsky

Fabien Potencier

Stefan Priebsch

Derick Rethans

Ralph Schindler

Matthew Weier O’Phinney

Tyto přednášky jistě stojí za to se na ně podívat a poučit se co se na nejznámější konferenci probíralo, samozřejmě to jistě nebylo všechno. Žádný účastník také jistě nestihl všechno co chtěl, protože program byl hodně plný. Mluvilo se také o uvedení Zend Server 5.0 beta a Zend Studia 7.1 beta, které si můžete již vyzkoušet.

Pokud někoho zaujalo něco dalšího tak to napište do komentářů.

Categories: php Tags: , , ,

Switch to our mobile site