Skip to content

cedricziel/idea-php-typo3-plugin

Repository files navigation

TYPO3 Plugins for IntelliJ IDEA / PhpStorm

Donate to this project using GitHub Sponsors Donate to this project using Paypal Donate to this project using Patreon

This repository contains IDE plugins for:

While these 3 plugins work together and may use each others' library functions and extension points, each may be used independently from the others - with a limited feature set.

The plugins in the JetBrains Plugin repository:

  • TYPO3 CMS - TYPO3 CMS Plugin for IntelliJ IDEA / PhpStorm in the JetBrains Plugin repository
  • TYPO3 Fluid - TYPO3 CMS Plugin for IntelliJ IDEA / PhpStorm in the JetBrains Plugin repository

Installation

On PhpStorm or IntelliJ:

  • open "File" -> "Settings"
  • select "Plugins"
  • select "Browse Plugins"
  • search "TYPO3 CMS Plugin"
  • choose the plugin in the left pane, click the install button in the right pane
  • hit apply, close the window
  • restart your IDE
  • profit!

TYPO3 CMS Plugin - Features

  • TypeProvider for GeneralUtility::makeInstance
  • TypeProvider for GeneralUtility::makeInstanceService
  • TypeProvider for ObjectManager::get
  • TypeProvider for $GLOBALS['TYPO3_DB'], $GLOBALS['TSFE'], $GLOBALS['BE_USER'] and $GLOBALS['TYPO3_REQUEST']
  • CompletionContributor for UriBuilder::buildUriFromRoute and BackendUtility::getAjaxUrl
  • CompletionContributor for IconFactory::getIcon
  • Annotator for both valid and invalid route references to make them distinguishable from normal strings
  • Annotator for both valid and invalid icon references to core-defined icons
  • LineMarkerProvider to allow quick navigation to the route definition
  • Inspection: Extbase @inject property injection + QuickFix
  • Experimental: Generate Fluid Styled Content Element (please report bugs!)
  • Generate ViewHelpers
  • Generate ActionControllers
  • Create TYPO3 Projects from sketch

Development and Contribution

Contributions are very welcome! 🎉

If you want to sustain further development, you can donate via PayPal, Patreon or Invoice.

Requirements

  • IntelliJ IDEA works best when developing the plugin (Community Edition should be sufficient), but in theory, every Java IDE or even your text-editor should work

QuickStart (*nix, please adjust to your platform)

  • git clone https://github.com/cedricziel/idea-php-typo3-plugin.git
  • cd idea-php-typo3-plugin
  • start the IDE:
    • TYPO3 CMS Plugin: ./gradlew :typo3-cms:runIde - gradlew.bat runIde for Windows
    • TYPO3 Fluid Plugin ./gradlew :lang-fluid:runIde - gradlew.bat runIde for Windows
    • TypoScript Plugin ./gradlew :lang-typoscript:runIde - gradlew.bat runIde for Windows
    • CTRL + C to terminate the execution
  • to begin development with IntelliJ, please import the build.gradle file as new project from existing sources
  • from IntelliJ run the Gradle task runIde (in debug mode), set break-points, profit!
  • run tests:
    • ./gradlew check
  • ideally: send your pull request from a feature branch

Credits

Thank you to Daniel Espendiller and Adrien Brault for providing their Symfony2 Plugin in the first place. It is a great inspiration for possible solutions and parts of the code.

Icons

Icons used in this project are provided by:

  • Göran Bodenschatz (@coding46)
  • TYPO3.Icons (MIT Licensed)

YourKit Java Profiler Sponsoring

We're glad, to have YourKit as a sponsor!

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

License

MIT