eclipsecon france 2016: eclipse speaks php
TRANSCRIPT
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 [email protected]