PhpStorm: Symfony2 Plugin

download PhpStorm: Symfony2 Plugin

of 74

  • date post

  • Category


  • view

  • download


Embed Size (px)


Some infomation about PhpStorm and IntelliJ development on the plugins: Symfony2 Plugin, Annotation, Shopware, Laravel and Drupal. Also some extension points analysis of IntelliJ and PhpStorm ------------- SymfonyLive Berlin 2014

Transcript of PhpStorm: Symfony2 Plugin

  • 1. @AnnotationDaniel -

2. Symfony2 Plugin2013-03 - Downloads: ~900.000 - daily usage: 20.000 40.000PHP Annotations2013-09 - daily usage: ~15.000Laravel Plugin2014-08 - daily usage: 1.000-2.000Shopware Plugin2014-02 - daily usage: ~1.000Drupal Symfony2 Bridge2014-06 - daily usage: ~500Android Studio PrettifyNot working for them :) Daniel - 3. About PhpStorm / IntelliJ IntelliJ: Java Lexer / Pattern IntelliJ: Extension Points PhpStorm Plugin Overview Symfony2 Plugin (all Features :)) Dev Enviroment, Tools, Resources QuestionsRoadmap 4. PhpStorm / IntelliJ PhpStorm based on IntelliJ IDEA (Java) With plugins: PHP, Twig, Yaml, PhpStorm 1.0 & WebStorm 1.0 are public, it is official! May 27, 2010 PhpStorm 5: Symfony2 Framework Integration :( September 12, 2012 Closed source, so no public API PhpStorm6: PHP OpenApi March 12, 2013 5. PhpStorm / IntelliJ PhpTypeProvider2 (ContainerInterface::get) PhpTypeProvider(1) freeze not usable Magento Plugin, Adrien Brault and PhpStorm Core Developer Help on debug What do we need and how do we use it? More user feedback from real life projects; only on Symfony2 Plugin Time issue for release date Twig as separate plugin (before: inside PHP) PhpStorm 7.0 Improved PhpDoc support (Annotations) PhpStorm 7.1: Dev in sync with IntelliJ IDEA 6. PhpStorm / IntelliJ IntelliJ / PhpStorm doc and code examples Decompile and try on your own :) API, stopHere :) Single person project(s) My project(s) time window: ~4 hours per week Better JetBrains support, because of your downloads Faster API updates Pls update to PhpStrom8; only 35% 7. IntelliJ IDEAJava, Lexer, Pattern, PsiElement, ... 8. PhpStorm / IntelliJ IDEA No PHP interpreter all magic in Java Closed Source for Plugins (PHP, Twig, Yaml, ...) Open-Source IntelliJ Community Edition Display document structure (Lexer output) with Plugin:PsiViewer Code wrapped into PsiElements, which are targets for allextensions Just references [MethodReference resolve() Method()]PsiViewer: 9. PsiViewer / PHP Language - Lexer 10. PsiViewer / PHP Language 11. PsiViewer / Twig + Pattern 12. Twig Lexer in PHP?SymfonyCon Warsaw 2013 - Matthias Noback - Diving Deep Into Twig 13. Translations: Array To JavaPHPJava 14. Plugin Overview 15. Symfony2 Pluginwithout Plugin 16. Symfony2 Pluginfr.adrienbrault.idea.symfony2plugin 17. 02013-042013-052013-062013-072013-082013-092013-102013-112013-122014-012014-022014-032014-042014-052014-062014-072014-082014-09100002000030000400005000060000700008000090000100000Symonfy2 - PhpStorm PluginDownloads Per MonthSymfony2 Plugin 18. PHP AnnotationIndex 19. PHP AnnotationEntity completion and navigation together with Symfony2 Plugin 20. PHP AnnotationReference between use and docblock tagCode > Optimize Imports 21. Drupal Symfony2 BridgeRouting, Service Container (Yaml), Twigmodules// 22. Drupal Symfony2 Bridgemodules//.info.yml 23. Laravel- Better Blade (Template) support of PhpStorm8: Linemaker, include, overwrites, - (Symfony2) Translations- (Symfony2) Config- ... 24. Laravel 25. Shopware- Subscriber (Enlight): events, hooks and proxy classes- Template: Smarty- Doctrine for database 26. Shopware 27. Shopware Doctrine ORM QueryBuilder support :)ShopwareModelsArticleRepository::getArticleQueryBuilder 28. Android Studio PrettifyGoogle Android team is switching to IntelliJ IDEA (Android Studio)Google I/O 2013 - What's New in Android Developer ToolsGoogle I/O 2014 - What's new in Android development tools 29. Android Studio PrettifyGenerator: XML Layout to Java 30. Android Studio PrettifyGenerator: XML Layout to Java 31. Android Studio PrettifyInspection: Cast check of view declarationLinemarker: View as icon 32. Productivitydouble your productivity (per month)?1 User * 6 hours per day * 20 days = 120 hours20.000 Users ... 33. Extension Points 34. Extension/META_INF/plugin.xml 35. Extension:completion.contributorOn demand: ctrl+space or in our custom auto popup (completion.confidence)Lookup string Type textTip: Press Tab for element selection; matches underlying stringTwighack :)Tail text 36. ExtensiongotoDeclarationHandlerOn demand: ctrl+mousover 37. Extensionpsi.referenceContributor Can provide completion (deprecated) and navigation Live event: On file change, inspection, reference search ... Php Annotation: references between use and Annotation >30ms 38. Extension - fileBasedIndex Primary extension of IntelliJ IDEA (Invalidate Caches / Restart) Application storage (not per Project!) for strings Storage structure: File -> Key -> Values[] File change listener Background job, switching to block mode on mass changes (project initialize) Only lexer output Regular Expressions :) 65. Symbol Search / Search EverywhereNavigate -> Symfony2 Symbol... 66. Server Storage?Vagrant, VMs, Sync, Remote for app/cache Folder.Other Frameworks: Zend, Typo3 / Flow, external Doctrine, Silex, ...JSONHTTPhttp://*:22221http:// Example: 67. Server Storage 68. Server Storage 69. Dev Environment / Tools 70. Dev Environment / ToolsJava Decompiler: JD-GUI - 8.0.1pluginsphplibphp.jarJetBrainsPhpStorm 8.0.1pluginsphplibphp-openapi.jarJetBrainsPhpStorm 8.0.1pluginstwiglibtwig.jar 71. Dev Environment / ToolsAdd external plugin as library 72. Dev Environment / ToolsDecompile PHP plugin and add sourcepath, to get source code support forexternals 73. Dev Environment / Tools idea-php-symfony2-plugin-test github: idea-* Wissenwertes ber die IntelliJ IDEA / PhpStorm Plugin Entwicklung JetBrains: JetBrains: Custom Language Support Doc: JetBrains: Symfony Development using PhpStorm JetBrains: Drupal Development using PhpStorm 74. Questions?