eclipsecon france 2016: eclipse speaks php

51
Eclipse Speaks PHP Kaloyan Raev 8 June 2016

Upload: kaloyan-raev

Post on 08-Apr-2017

124 views

Category:

Software


0 download

TRANSCRIPT

Page 1: EclipseCon France 2016: Eclipse Speaks PHP

Eclipse Speaks PHPKaloyan Raev

8 June 2016

Page 2: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 3: EclipseCon France 2016: Eclipse Speaks PHP

Some History

Page 4: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 5: EclipseCon France 2016: Eclipse Speaks PHP

Features

Page 6: EclipseCon France 2016: Eclipse Speaks PHP

6

Architecture

* Diagram from the Project Proposal, but still relevant

Page 7: EclipseCon France 2016: Eclipse Speaks PHP

7

Syntax Highlighting

Page 8: EclipseCon France 2016: Eclipse Speaks PHP

8

Content Assist

Page 9: EclipseCon France 2016: Eclipse Speaks PHP

9

Code Formatter

Page 10: EclipseCon France 2016: Eclipse Speaks PHP

10

Refactoring

Page 11: EclipseCon France 2016: Eclipse Speaks PHP

11

Code Templates

Page 12: EclipseCon France 2016: Eclipse Speaks PHP

12

Code Navigation

Page 13: EclipseCon France 2016: Eclipse Speaks PHP

13

PHP Debugging

Page 14: EclipseCon France 2016: Eclipse Speaks PHP

14

Syntax Validation

Page 15: EclipseCon France 2016: Eclipse Speaks PHP

New in Neon

Page 16: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 17: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 18: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 19: EclipseCon France 2016: Eclipse Speaks PHP

19

PHP editor

• Massive amount of changes

• Just a small selection follows

Page 20: EclipseCon France 2016: Eclipse Speaks PHP

20

PHP editor

Improved syntax highlighting

Page 21: EclipseCon France 2016: Eclipse Speaks PHP

21

PHP editor

Code assist dialog

• Function / method return types

• Resizing the dialog is remembered between calls

• Colored labels

Page 22: EclipseCon France 2016: Eclipse Speaks PHP

22

PHP editor

Code assist inside PHPDoc

Page 23: EclipseCon France 2016: Eclipse Speaks PHP

23

PHP editor

Quick fixes and quick assists

Page 24: EclipseCon France 2016: Eclipse Speaks PHP

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)

Page 25: EclipseCon France 2016: Eclipse Speaks PHP

25

Smart import

Page 26: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 27: EclipseCon France 2016: Eclipse Speaks PHP

Ecosystem

Page 28: EclipseCon France 2016: Eclipse Speaks PHP

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/

Page 29: EclipseCon France 2016: Eclipse Speaks PHP

29

PDT Extensions

PHPUnit

Page 30: EclipseCon France 2016: Eclipse Speaks PHP

30

PDT Extensions

PHP CodeSniffer

Page 31: EclipseCon France 2016: Eclipse Speaks PHP

31

PDT Extensions

Symfony

Page 32: EclipseCon France 2016: Eclipse Speaks PHP

32

PDT Extensions

Composer

Page 33: EclipseCon France 2016: Eclipse Speaks PHP

33

PDT Extensions

Magento

Page 34: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 35: EclipseCon France 2016: Eclipse Speaks PHP

35

Zend Studio

Semantic Analysis

Page 36: EclipseCon France 2016: Eclipse Speaks PHP

36

Zend Studio

Profiling

Page 37: EclipseCon France 2016: Eclipse Speaks PHP

37

Zend Studio

Zend Server integration

Page 38: EclipseCon France 2016: Eclipse Speaks PHP

38

Zend Studio

Zend Framework / Apigility

Page 39: EclipseCon France 2016: Eclipse Speaks PHP

How to Get It

Page 40: EclipseCon France 2016: Eclipse Speaks PHP

40

EPP package

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

Page 41: EclipseCon France 2016: Eclipse Speaks PHP

41

Eclipse Installer

Page 42: EclipseCon France 2016: Eclipse Speaks PHP

42

Eclipse Marketplace

Page 43: EclipseCon France 2016: Eclipse Speaks PHP

43

Simultaneous Release repository

Page 44: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 45: EclipseCon France 2016: Eclipse Speaks PHP

Current Status

Page 46: EclipseCon France 2016: Eclipse Speaks PHP

46

Releases

Page 47: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 48: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 49: EclipseCon France 2016: Eclipse Speaks PHP

Future

Page 50: EclipseCon France 2016: Eclipse Speaks PHP

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

Page 51: EclipseCon France 2016: Eclipse Speaks PHP

Thank you!Reach us at [email protected]