Home » Community » People » crell »
crell

crell

Contributor Directory

RFCs

Language and policy proposals from this contributor
RFCs are part of the process by which decisions are made about PHP. For more information about the RFC process as well as viewing a full list of RFCs please visit the RFC section.

Pattern Matching

Author
This RFC introduces pattern matching syntax for PHP. Pattern Matching as a language concept contains two parts: Matching a variable against a potentially compl...

Context Managers

Author
Context Managers are a concept borrowed from Python. They provide a way to abstract out common control-flow and variable-lifetime-management patterns, leading ...

Function composition operators

Author
In object-oriented code, composition generally means one object having a reference to another. In functional programming, composition generally means sticking ...

PHP.net Analytics Collection

Author
Target
policy
The PHP.net website is a critical resource for PHP developers worldwide, providing documentation, news, and updates about the PHP language. It has millions of ...

Approve using Matomo for analytics?

Yes
No
Yes
23 Votes (100%)
No
0 Votes (0%)

Policy on 3rd party code

Author
Target
policy
The PHP project has had a long-standing but unwritten, vague, and inconsistently-applied proscription against mentioning or using third-party PHP projects, on t...

Accept this policy proposal?

Yes
No
Yes
24 Votes (96%)
No
1 Votes (4%)

isReadable/Writable reflection methods

Author
Target
8.6
The ReflectionProperty::isPublic() method, by design, indicates only if a property has a public flag set on it, nothing more. Prior to PHP 8.1, that implicitly...

Implement isReadable/isWritable?

Yes
No
Abstain
Yes
27 Votes (90%)
No
0 Votes (0%)
Abstain
3 Votes (10%)

Partial Function Application (v2)

Author
Target
8.6
Partial Function Application (PFA) refers to the process of calling a function with only some of its required parameters, delaying the rest to a later time. It...

Implement partial application as outlined in the RFC?

Yes
No
Abstain
Yes
33 Votes (100%)
No
0 Votes (0%)
Abstain
0 Votes (0%)

Partial Function Application: Handling of Optional Parameters

Author
Target
8.6
The accepted Partial Function Application RFC proposed inheriting the optionality of ?-placeholdered parameters. This results in inconsistent user-facing behavi...

Make all ? placeholders in PFA required parameters?

Yes
No
Abstain
Yes
25 Votes (96%)
No
0 Votes (0%)
Abstain
1 Votes (4%)

Pipe operator v3

Author
Target
8.5
In object-oriented code, composition generally means one object having a reference to another. In functional programming, composition generally means sticking ...

Add the pipe operator?

Yes
No
Yes
33 Votes (83%)
No
7 Votes (18%)

Asymmetric Visibility for Static Properties

Author
Target
8.5
The Asymmetric Visibility RFC for PHP 8.4 deliberately omitted support for asymmetric visibility on static properties. That was due primarily to the expected i...

Approve asymmetric visibility for static properties?

Yes
No
Yes
15 Votes (83%)
No
3 Votes (17%)

Asymmetric Visibility v2

Author
Target
8.4
PHP has long had the ability to control the visibility of object properties -- public, private, or protected. However, that control is always the same for both...

Implement asymmetric visibility?

Yes
No
Yes
24 Votes (77%)
No
7 Votes (23%)

Property hook improvements

Author
Target
8.4
While finalizing the implementation of the property hooks RFC patch, we have found a small area for improvement. This is nominally changes from the behavior de...

Remove the extra hook recursion guard?

Yes
No
Yes
33 Votes (100%)
No
0 Votes (0%)

Property hooks

Author
Target
8.4
Developers often use methods to wrap and guard access to object properties. There are several highly common patterns for such logic, which in practice may be ve...

Implement property hooks as described?

Yes
No
Yes
42 Votes (95%)
No
2 Votes (5%)

Enumerations

Author
Target
8.1
This RFC introduces Enumerations to PHP. The scope of this RFC is limited to unit enumerations, that is, enumerations that are themselves a value, rather than ...

Include Enumerations in PHP

Yes
No
Yes
44 Votes (86%)
No
7 Votes (14%)

Readonly hooks

Author
Support for hooks on readonly properties was omitted from the original RFC, primarily to minimize complexity as there were questions around when it was safe to ...

Approve backed readonly get hooks?

Yes
No
Yes
5 Votes (19%)
No
21 Votes (81%)

Approve backed readonly set hooks?

Yes
No
Yes
13 Votes (59%)
No
9 Votes (41%)

PHP Technical Committee

Author
The Open Source project that develops the PHP language and its reference implementation uses an RFC process to discuss and vote on proposed changes. This was cr...

Introduce the PHP Technical Committee as defined in this RFC

Yes
No
Yes
10 Votes (32%)
No
21 Votes (68%)

Asymmetric Visibility

Author
PHP has long had the ability to control the visibility of object properties -- public, private, or protected. However, that control is always the same for both...

Include asymmetric visibility?

Yes
No
Yes
14 Votes (54%)
No
12 Votes (46%)

If voting no, why?

Dislike feature itself
Syntax details
Other (specify below)
Dislike feature itself
6 Votes (50%)
Syntax details
4 Votes (33%)
Other (specify below)
2 Votes (17%)

Pipe Operator v2

Author
Code like the following is quite common in procedural code:

Pipe Operator

Yes
No
Yes
11 Votes (39%)
No
17 Votes (61%)

Short Functions

Author
Short lambdas / arrow functions offer a convenient, compact way to write simple closures as a single expression. This RFC offers the same convenience for named...

Include short-function syntax in PHP

Yes
No
Yes
16 Votes (47%)
No
18 Votes (53%)

Adopt this policy for future symbols defined by php-src and extension code?

Yes
No
Yes
13 Votes (43%)
No
17 Votes (57%)

Allow Closures to Declare Interfaces they Implement

Author
This RFC proposes the addition of a syntax that allows closures to declare one or more interfaces they implement. This would provide developers with a more expl...

Structural Typing for Closures

Author
This RFC proposes to introduce structural typing for closures when used with interfaces containing only an __invoke() method. This feature aims to simplify the ...

Algebraic Data Types

Author
This is an over-arching description of a multi-step process to add Algebraic Data Types to PHP. That effort is happening over multiple implementation RFCs in o...

Tagged Unions

Author
This RFC expands on the previous Enumerations RFC to allow values to be associated with an enum Case, creating what is typically called a tagged union.

Generator comprehensions

Author
This RFC proposes a new syntax for compact generator creation, or comprehensions as they are known in many other languages. Such a syntax offers a more compact...

Short match

Author
The match() expression, introduced in PHP 8.0, matches one value against a series of others. For more complex cases, it's possible to provide a value of boolea...