The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run.

To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before.

After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code.

(*actual magic or time-warp not guaranteed)


Comments are closed.

Alessandro Lai at 11:51 on 12 May 2017

Very complicated topic; the talk started obscure, but by the end it was very clear and informative.

Difficult topic but we'll explained
Some slide were difficult to read from the back lines

Well explained, with a nice refresher of several compiler class concepts. Not about something which can be used for your everyday job, but it's always good to know how tings work under the hood. IMHO the talk could be improved even more with a few more hints about implications and benefits of the AST; both from a user, and language point of view. Glad of having attended, though.

Interesting insigths on php code meta analisys tools.

Nice informative talk. I'd have appreciated even more if it would have outlined some real world/ daily coding use cases for which the knowledge of these concepts can effectively improve our coding style and/or performance.


Learned a lot of things I haven't thought about in the past. Cool stuff

Matteo Riva at 20:21 on 12 May 2017

Very clear and informative. James explained the basics of a compiler in a very concise and easy to understand way.

Andy Johnson at 22:15 on 12 May 2017

It was ok

These topics will stay with you, improving the mental model of how PHP works under the hood.

Very good talk with an easy to understand explanation of things. There were a few super tiny errors, and I think that it should be made clearer why an AST is so much better than operating on a token stream directly (e.g. revisiting of nodes, attaching extra info, down/up optimizations, etc.).