© 2008 by Roy Ganor; made available under the EPL v1.0 | 19 th March 2008 Roy Ganor, Team Leader Zend Technologies, Ltd. March 19th 2008 EXTENDING THE.

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

© 2007 by Raghu Srinivasan; made available under the EPL v1.0 | Presenter Raghu Srinivasan Project Lead Oracle Inc. The JSF Tools Project –
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
Database Management Using Microsoft Access Xinhua Chen, Ph.D. Chinese Association of Professionals in Science and Technology March 23, 2003.
Module 1: Introduction to SQL Server Reporting Services.
Copyright © IBM Corp., Introducing the new Web Tools JavaScript™ Features Phil Berkland IBM Software Group 9/26/2007.
DEV-2: Getting Started with OpenEdge® Architect – Part I
A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
Eclipse Architecture Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Microsoft Office 2000 Introducing the Suite. Microsoft Word Key Features of Word: create & edit documents apply formatting features add visual elements.
701 - Building with the Data Tools project John Graham Der Ping Chou.
© 2008 Zend Technologies; made available under the EPL v March 2008 PDT – The PHP Development Toolkit Assaf Almaz, PDT co-Project Leader Zend Technologies.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
© 2006 by Yossi Leon, PHP IDE Project Leader; made available under the EPL v1.0 | 12/10/2006 New & Noteworthy Project Update: PHP IDE Presented By: Yossi.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.

© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
JBoss Developer Studio. JBoss Developer Studio provides a certified open source development environment that includes and integrates: Eclipse Eclipse.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 20, 2008 | Short Talk Standards based systems management: An.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
DBSQL 14-1 Copyright © Genetic Computer School 2009 Chapter 14 Microsoft SQL Server.
© 2006 IBM Corporation JDojo & ScriptEngine Agile Planning’s Scripting Tools.
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
SQL Server 2012 Session: 1 Session: 3 Introduction to SQL Server 2012 Data Management Using Microsoft SQL Server.
© 2006 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Jason Weathersby BIRT Evangelist, Actuate Corp. Leveraging.
© 2006 DTP PMC; made available under the EPL v1.0 | July 12, 2006 | DTP Enablement Project Creation Review Creation Review: Eclipse Data Tools Platform.
NCBI Genome Workbench Chuong Huynh NIH/NLM/NCBI Sao Paulo, Brasil July 15, 2004 Slides from Michael Dicuccio’s Genome Workbench.
Cross Language Clone Analysis Team 2 October 13, 2010.
© 2006 Intland Software1 Aron Gombas Architect, Intland Software Extending & customizing CodeBeamer.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
© 2010 by Boeing; made available under the EPL v1.0 | March 23, 2010 | Xtext and GEF deliver editors for the Open System Engineering Environment Ryan Brooks.
Content provided under the terms and conditions of the Eclipse Public License Version 1.0 OOPSLA, San Diego Oct , Eclipse Foundation -
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
QPE A Graphical Editor for Modeling using Queueing Petri Nets Christofer Dutz.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
Developing Web Services with the Eclipse Web Tools Platform David Gallardo.
CIS 375—Web App Dev II ASP.NET 1 Getting Started.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Copyright © 2010 Obeo, Made available under the Eclipse Public License v SCA Tools (Helios) Release Review Planned Review Date: June 11, 2010.
1 Towards Integrated Tool Support for the User Requirements Notation Jean-François Roy
Microsoft Visual Basic 2012: Reloaded Fifth Edition Chapter One An Introduction to Visual Basic 2012.
Top 5 IDE that Simplifies PHP Development Biztech IT Consultancy Pvt. Ltd. | |
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
CS 153: Concepts of Compiler Design November 30 Class Meeting
IBM JBPM online Training in Chennai
CMPE419 Mobile Application Development
Service Metadata Registry (COSMOS)
Social Media And Global Computing Introduction to Visual Studio
Understanding the Visual IDE
Chapter 7 –Implementation Issues
Eclipse Plug-in Development
QVT Operational 1.0 Ganymede Simultaneous Release Graduation Review
How to take advantage of the new Eclipse Debug Platform features
An Introduction to Eclipse
CMPE419 Mobile Application Development
Microsoft Azure Services Platform
MBUG 2019 Session Title: Banner Extensibility - Page Builder
Presentation transcript:

© 2008 by Roy Ganor; made available under the EPL v1.0 | 19 th March 2008 Roy Ganor, Team Leader Zend Technologies, Ltd. March 19th 2008 EXTENDING THE ECLIPSE PHP DEVELOPMENT TOOLS PROJECT

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 Allowing extensibility due to the nature of PHP PROJECT’S GOAL Making Eclipse-PDT the de-facto standard for PHP development

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 WHY EXTEND? Integrate your extension or framework with PDT

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 EXAMPLES Zend Framework Testing Framework Advanced Code Analysis Run-time Analysis Syntax Coloring Extended Syntax Validation Adaptable Explorer

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 ARCHITECTURE Eclipse Platform Web Tools GEF Graphical Editing EMF-XSD -SDO Modeling Framework Source Editing Editor Capabilities Common Validations Web Services Development WTP All the Rest Other Tools DLTK Language Support PDT DTP Data Tools Platform UI View Core Modeling Server Configuration Debug Protocol Help Documentation RelEng Release Tools Test JUnit Testing

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 WORKSPACE MODELING Represents php projects in a tree structure, visualized by the “php Explorer" view Base class is org.eclipse.dltk.core.IModelElement Get model by ModelManager.getModelManager().getModel() IScriptProject IScriptFolder IType IField IMethod IPackageFragment[] BuiltinProjectFragment IScriptModule

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 CODE REPRESENTATION & MANIPULATION Based upon the Abstract Syntax Tree (AST) Allows you to modify the tree and reflects modifications in the php source code //... Create a Program AST instance... program.recordModifications(); //... fetch the statement component... statements.add(ast.newEchoStatement (ast.newScalar("'Hello World!'"))); //.. More changes go here... TextEdit edits = program.rewrite(document, null);

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 SHARED AST PROVIDER Protected and shared AST (Rewriting is restricted) SharedASTProvider.getAST(ISourceModule, WAIT_FLAG, IPM) Mark occurrence feature is available by analyzing the shared AST

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 PHP EDITOR Based upon wst.sse.ui.StructuredTextEditor Extend syntax coloring with:  Setting your own source parser internal.core.documentModel.parser.SourceParser  Construct php regions core.documentModel.parser.regions.IPhpScriptRegion  Set your coloring policy with ui.editor.highlighter.LineStyleProviderForPhp

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 LISTEN TO ELEMENTS CHANGE Register by: DLTKCore.addElementChangedListener(IElementChangedListener) Unregister by: DLTKCore.removeElementChangedListener(IElementChangedListener) /** * An element changed listener receives notification of changes to script * elements maintained by the script model. * */ public interface IElementChangedListener { public void elementChanged(ElementChangedEvent event); } /** * An element changed listener receives notification of changes to script * elements maintained by the script model. * */ public interface IElementChangedListener { public void elementChanged(ElementChangedEvent event); }

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 LAUNCH CONFIGURATION Based upon org.eclipse.debug Debug session listener should extend org.eclipse.php.debug.core.debugger.IDebugHandler public interface IDebugHandler { public void sessionStarted(String fileName, String uri, String query, String options); public void sessionEnded(); public void connectionTimedout(); public void multipleBindOccured(); public void handleScriptEnded(); public void connectionEstablished(); public void connectionClosed(); public void newOutput(String output); public void newHeaderOutput(String output); public void parsingErrorOccured(DebugError debugError); public void wrongDebugServer(); public void ready(String fileName, int lineNumber); public void debugChanged(); public void debuggerErrorOccured(DebugError debugError); public IRemoteDebugger getRemoteDebugger(); public void setDebugTarget (PHPDebugTarget debugTarget); public PHPDebugTarget getDebugTarget(); } public interface IDebugHandler { public void sessionStarted(String fileName, String uri, String query, String options); public void sessionEnded(); public void connectionTimedout(); public void multipleBindOccured(); public void handleScriptEnded(); public void connectionEstablished(); public void connectionClosed(); public void newOutput(String output); public void newHeaderOutput(String output); public void parsingErrorOccured(DebugError debugError); public void wrongDebugServer(); public void ready(String fileName, int lineNumber); public void debugChanged(); public void debuggerErrorOccured(DebugError debugError); public IRemoteDebugger getRemoteDebugger(); public void setDebugTarget (PHPDebugTarget debugTarget); public PHPDebugTarget getDebugTarget(); }

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 KEY EXTENSION POINTS org.eclipse.php.core  includePathVariable  goalEvaluatorFactory  phpBuilderExtensions  phpModelExtensions org.eclipse.php.ui  phpContentAssistProcessor org.eclipse.php.debug.core  phpDebugHandlers  phpDebugParametersInitializer More:

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 CONTACT & REFERENCES Wiki: Mailing list Newsgroup

Extending The PDT Project | Architecture and Extension Points | © 2008 by Roy Ganor; made available under the EPL v1.0 Questions?