Skip to main content
Jump to: navigation, search

PHP DLTK Integration

Motivation

Improvements

Our motivation is to move to the DLTK structured model representation while keeping up the WST DOM model representation, which is designed in JDT style. That switch should resolve the following issues:

  • Memory usage (new model uses disk index, and memory index is LRU cached)
  • Synchronization issues ("Building Workspace" stacks)

Benefits

We should gather the following benefits from moving to the DLTK model:

  • Type inference for PHP (we are getting it without cost)
  • Type hierarchy
  • Call hierarchy
  • More granulated search engine

And much more...


PDT API

DLTK Extensions Usage

The following DLTK extensions are used in PDT:

  • org.eclipse.dltk.core.language - General project nature description
  • org.eclipse.dltk.core.sourceParsers - Compiler AST parser
  • org.eclipse.dltk.core.sourceElementParsers - Structured model parser
  • org.eclipse.dltk.core.mixin - Mixin model parser
  • org.eclipse.dltk.core.search - Model elements search engine
  • org.eclipse.dltk.core.typeEvaluators - PHP type inference engine (goal evaluators)
  • org.eclipse.php.core.goalEvaluatorFactories - PHP type inference engine (goal evaluators factory)
  • org.eclipse.dltk.core.buildpathContainerInitializer - PHP include path
  • org.eclipse.dltk.core.completionEngine - Code completion engine
  • org.eclipse.dltk.core.selectionEngine - Code selection engine (old name: CodeDataResolver)
  • org.eclipse.dltk.core.callHierarchy - Call hierarchy resolver
  • org.eclipse.dltk.core.fileHierarchyResolvers - Type hierarchy resolver addon for file network filtering (included files filtering)


Old PDT API

As a result at least these PDT extensions are deprecated, and will be removed:

  • org.eclipse.php.core.includePathVariables
  • org.eclipse.php.core.modelFilter
  • org.eclipse.php.core.phpBuilderExtensions
  • org.eclipse.php.core.phpModelExtensions
  • org.eclipse.php.core.workspaceModelListener
  • org.eclipse.php.ui.phpContentAssistant
  • org.eclipse.php.ui.phpContentAssistProcessor

Back to the top