Submit Search
Upload
Traits: A New Language Feature for PHP?
•
5 likes
•
3,407 views
S
Stefan Marr
Follow
Technology
Report
Share
Report
Share
1 of 40
Download Now
Download to read offline
Recommended
Object Oriented Technologies
Object Oriented Technologies
Umesh Nikam
Object Oriented Technologies
Object Oriented Technologies
Tushar B Kute
Adapt OWL as a Modular Ontology Language
Adapt OWL as a Modular Ontology Language
Jie Bao
Polymorphism
Polymorphism
Nilesh Dalvi
R and Python, A Code Demo
R and Python, A Code Demo
Vineet Jaiswal
Turbo prolog 2.0 basics
Turbo prolog 2.0 basics
Soham Kansodaria
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific Languages
Eelco Visser
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
Tomer Gabel
More Related Content
What's hot
Andy On Closures
Andy On Closures
melbournepatterns
Domain specific languages and Scala
Domain specific languages and Scala
Filip Krikava
Metaprograms and metadata (as part of the the PTT lecture)
Metaprograms and metadata (as part of the the PTT lecture)
Ralf Laemmel
Representing and Reasoning with Modular Ontologies
Representing and Reasoning with Modular Ontologies
Jie Bao
3. Data types and Variables
3. Data types and Variables
Nilesh Dalvi
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Jie Bao
Dart workshop
Dart workshop
Vishnu Suresh
Object Oriented Programming Concepts
Object Oriented Programming Concepts
246paa
Chapter1pp
Chapter1pp
J. C.
Reviewing OOP Design patterns
Reviewing OOP Design patterns
Olivier Bacs
C++ OOP Implementation
C++ OOP Implementation
Fridz Felisco
Chado introduction
Chado introduction
Chris Mungall
Chado-XML
Chado-XML
Chris Mungall
Chado for evolutionary biology
Chado for evolutionary biology
Chris Mungall
Creating Domain Specific Languages in F#
Creating Domain Specific Languages in F#
Tomas Petricek
Little languages
Little languages
Chris Laffra
Object Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part I
Ajit Nayak
Basics of oops concept
Basics of oops concept
DINESH KUMAR ARIVARASAN
Implementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in Dotty
Martin Odersky
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Deep Learning Italia
What's hot
(20)
Andy On Closures
Andy On Closures
Domain specific languages and Scala
Domain specific languages and Scala
Metaprograms and metadata (as part of the the PTT lecture)
Metaprograms and metadata (as part of the the PTT lecture)
Representing and Reasoning with Modular Ontologies
Representing and Reasoning with Modular Ontologies
3. Data types and Variables
3. Data types and Variables
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Dart workshop
Dart workshop
Object Oriented Programming Concepts
Object Oriented Programming Concepts
Chapter1pp
Chapter1pp
Reviewing OOP Design patterns
Reviewing OOP Design patterns
C++ OOP Implementation
C++ OOP Implementation
Chado introduction
Chado introduction
Chado-XML
Chado-XML
Chado for evolutionary biology
Chado for evolutionary biology
Creating Domain Specific Languages in F#
Creating Domain Specific Languages in F#
Little languages
Little languages
Object Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part I
Basics of oops concept
Basics of oops concept
Implementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in Dotty
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Similar to Traits: A New Language Feature for PHP?
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009
Martin Odersky
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
Guillaume Laforge
Linq 1224887336792847 9
Linq 1224887336792847 9
google
Linq To The Enterprise
Linq To The Enterprise
Daniel Egan
F# 101
F# 101
Chris Alcock
Patterns in Python
Patterns in Python
dn
.NET and C# introduction
.NET and C# introduction
Peter Gfader
Future Programming Language
Future Programming Language
YLTO
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
Mark Menard
F# for functional enthusiasts
F# for functional enthusiasts
Jack Fox
Modules of the twenties
Modules of the twenties
Puppet
Framework engineering JCO 2011
Framework engineering JCO 2011
YoungSu Son
Sparklis exploration et interrogation de points d'accès sparql par interactio...
Sparklis exploration et interrogation de points d'accès sparql par interactio...
SemWebPro
Stay fresh
Stay fresh
Ahmed Mohamed
The GO Language : From Beginners to Gophers
The GO Language : From Beginners to Gophers
Alessandro Sanino
Xbase implementing specific domain language for java
Xbase implementing specific domain language for java
Yash Patel
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible research
Andrew Lowe
Traits composition
Traits composition
Marielle Lange
Introduction to java
Introduction to java
Sujit Majety
Graph Databases in the Microsoft Ecosystem
Graph Databases in the Microsoft Ecosystem
Marco Parenzan
Similar to Traits: A New Language Feature for PHP?
(20)
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
Linq 1224887336792847 9
Linq 1224887336792847 9
Linq To The Enterprise
Linq To The Enterprise
F# 101
F# 101
Patterns in Python
Patterns in Python
.NET and C# introduction
.NET and C# introduction
Future Programming Language
Future Programming Language
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
F# for functional enthusiasts
F# for functional enthusiasts
Modules of the twenties
Modules of the twenties
Framework engineering JCO 2011
Framework engineering JCO 2011
Sparklis exploration et interrogation de points d'accès sparql par interactio...
Sparklis exploration et interrogation de points d'accès sparql par interactio...
Stay fresh
Stay fresh
The GO Language : From Beginners to Gophers
The GO Language : From Beginners to Gophers
Xbase implementing specific domain language for java
Xbase implementing specific domain language for java
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible research
Traits composition
Traits composition
Introduction to java
Introduction to java
Graph Databases in the Microsoft Ecosystem
Graph Databases in the Microsoft Ecosystem
More from Stefan Marr
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Stefan Marr
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
Stefan Marr
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
Stefan Marr
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Stefan Marr
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?
Stefan Marr
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Stefan Marr
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
Stefan Marr
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Stefan Marr
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Stefan Marr
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Stefan Marr
Sly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with Smalltalk
Stefan Marr
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Stefan Marr
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
Stefan Marr
PHP.next: Traits
PHP.next: Traits
Stefan Marr
The Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore Era
Stefan Marr
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Stefan Marr
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Stefan Marr
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Stefan Marr
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Stefan Marr
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Stefan Marr
More from Stefan Marr
(20)
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Sly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with Smalltalk
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
PHP.next: Traits
PHP.next: Traits
The Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore Era
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Recently uploaded
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
ThousandEyes
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
YounusS2
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
Matt Ray
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
Udaiappa Ramachandran
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
Eric D. Schabell
Nanopower In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
Pedro Manuel
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
bruanjhuli
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
Jamie (Taka) Wang
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
Adtran
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
Martin Humpolec
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
Aggregage
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?
SANGHEE SHIN
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
shyamraj55
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
Christian Posta
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
Matsuo Lab
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
DianaGray10
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
Anna Loughnan Colquhoun
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
DianaGray10
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
Seth Reyes
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
DianaGray10
Recently uploaded
(20)
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
Nanopower In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Traits: A New Language Feature for PHP?
1.
Please, feel free
to interrupt me at any time.
2.
3.
4.
5.
6.
7.
Whiteboard
8.
9.
10.
Refactoring ezcReflection with
Traits original with Traits green parts are extracted to the Traits on the right-hand side, and will be removed from the classes
11.
12.
from [6]
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Stateless Traits
39.
40.
Stateful Traits
Download Now