EclipseCon France 2016: Eclipse Speaks PHP

Post on 08-Apr-2017

124 views 0 download

Transcript of EclipseCon France 2016: Eclipse Speaks PHP

Eclipse Speaks PHPKaloyan Raev

8 June 2016

2

Who am I

• Eclipse user for 13 years

• Eclipse contributor for 10 years

• Currently active in the PDT, DLTK and Andmore projects

• Zend Studio Team Lead

– Zend Studio is a professional PHP IDE based on Eclipse PDT

Some History

4

Chronology

• 2001 – Zend releases the very first version of the Zend IDE

– Based on Java, but not on Eclipse

• 2006 – Zend and IBM create the Eclipse PDT project

– PHP 4 and PHP 5 support

• 2008 – Zend Studio 6 – first release based on Eclipse

• 2012 – PHP 5.4 support

• 2013 – PHP 5.5 support

• 2014 – PHP EPP package resurrected, PHP 5.6 support

• 2015 – Initial PHP 7 support

• 2016 – PDT 4.0 Neon – Complete PHP 7 support

Features

6

Architecture

* Diagram from the Project Proposal, but still relevant

7

Syntax Highlighting

8

Content Assist

9

Code Formatter

10

Refactoring

11

Code Templates

12

Code Navigation

13

PHP Debugging

14

Syntax Validation

New in Neon

16

PHP 7 support

• Uniform Variable Syntax

• Anonymous Classes

• Scalar Type Hints

• Return Type Declarations

• Spaceship Operator

• Null Coalesce Operator

• Group Use Statements

• Generator Delegation

17

New, faster PHP indexer

• Based on Apache Lucene

• 3x faster indexing process

• 3x less space on file system

• Faster code assist, code navigation, validation, search, etc.

• Scales better on multi-core CPUs

18

More performance improvements

• More responsive code editor

– Code assist and code navigation no more freeze the UI if indexing is in

progress

• Improved performance on big (>40k lines) arrays

• Improved smart indentation performance

• Improved Code Assist performance for files with many assignments

• General performance improvements for PHPDoc generation

19

PHP editor

• Massive amount of changes

• Just a small selection follows

20

PHP editor

Improved syntax highlighting

21

PHP editor

Code assist dialog

• Function / method return types

• Resizing the dialog is remembered between calls

• Colored labels

22

PHP editor

Code assist inside PHPDoc

23

PHP editor

Quick fixes and quick assists

24

Debugging

• General improvements for both Xdebug and Zend Debugger

• Improved OS X support

• Fixed debugging with Xdebug thru SSH tunnel

• PHP Exception breakpoints (Xdebug)

25

Smart import

26

And more...

Details in New & Noteworthy pages:

• PDT 3.6 (Mars.1):

https://wiki.eclipse.org/PDT/NewIn36

• PDT 3.7 (Mars.2):

https://wiki.eclipse.org/PDT/NewIn37

• PDT 4.0 (Neon):

https://wiki.eclipse.org/PDT/NewIn40

• > 300 bugs fixed

Ecosystem

28

PDT Extension group

• Community collaboration group

• Plugins extending or integrating with PDT

• Open source projects, not hosted at Eclipse.org

• Web site / p2 repo: http://p2.pdt-extensions.org/

29

PDT Extensions

PHPUnit

30

PDT Extensions

PHP CodeSniffer

31

PDT Extensions

Symfony

32

PDT Extensions

Composer

33

PDT Extensions

Magento

34

Zend Studio

• Professional IDE based on Eclipse PDT

• Complete installation package

• Can be installed as a plugin too

• Commercial product

• Professional support

• Web site: www.zend.com/en/products/studio

35

Zend Studio

Semantic Analysis

36

Zend Studio

Profiling

37

Zend Studio

Zend Server integration

38

Zend Studio

Zend Framework / Apigility

How to Get It

40

EPP package

https://www.eclipse.org/downloads/

41

Eclipse Installer

42

Eclipse Marketplace

43

Simultaneous Release repository

44

p2 repositories

• Latest release:

http://download.eclipse.org/tools/pdt/updates/latest

• Latest nightly build:

http://download.eclipse.org/tools/pdt/updates/latest-nightly

Current Status

46

Releases

47

Download stats (since Mars)

• EPP package:

– Mars: 403,639

– Mars.1: 284,314

– Mars.2: 138,618

• Eclipse Marketplace: 26,404

• Total: 852,975

48

Who is involved

• Project Lead: Dawid Pakula

• 5 active committers

– 3 Zenders (Michal, Bartlomiej, Kaloyan)

– 2 individuals (Dawid, Thierry)

• 33 historical committers

• More details: https://projects.eclipse.org/projects/tools.pdt/who

Future

50

Oxygene plans

• Continue delivering new feature release for every SimRel update

– i.e. PDT 4.1 for Neon.1, PDT 4.2 for Neon.2, …

• Continue improving the editor

• Continue improving the debugger

• Improve the integration with JSDT 2.0

• Composer integration

• Improve beginner's experience

Thank you!Reach us at pdt-dev@eclipse.org