Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
PHP DLTK Integration
Contents
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