rfc:magic-methods-signature

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
rfc:magic-methods-signature [2020/04/28 16:36] carusogabrielrfc:magic-methods-signature [2020/06/19 16:09] – Close voting carusogabriel
Line 3: Line 3:
   * Date: 2020-04-05   * Date: 2020-04-05
   * Author: Gabriel Caruso (<carusogabriel@php.net>)   * Author: Gabriel Caruso (<carusogabriel@php.net>)
-  * Status: Under Discussion+  * Status: Accepted
   * Target Version: PHP 8.0   * Target Version: PHP 8.0
   * Implementation: https://github.com/php/php-src/pull/4177   * Implementation: https://github.com/php/php-src/pull/4177
Line 35: Line 35:
  
 <code php> <code php>
-/** @return mixed */ +Foo::__call(string $name, array $arguments): mixed;
-Foo::__call(string $name, array $arguments);+
  
-/** @return mixed */ +Foo::__callStatic(string $name, array $arguments): mixed;
-Foo::__callStatic(string $name, array $arguments);+
  
 Foo::__clone(): void; Foo::__clone(): void;
Line 45: Line 43:
 Foo::__debugInfo(): ?array; Foo::__debugInfo(): ?array;
  
-/** @return mixed */ +Foo::__get(string $name): mixed;
-Foo::__get(string $name);+
  
 Foo::__isset(string $name): bool; Foo::__isset(string $name): bool;
Line 52: Line 49:
 Foo::__serialize(): array; Foo::__serialize(): array;
  
-/** @param mixed $value */ +Foo::__set(string $name, mixed $value): void;
-Foo::__set(string $name, $value): void;+
  
 Foo::__set_state(array $properties): object; Foo::__set_state(array $properties): object;
Line 66: Line 62:
 </code> </code>
  
-**Note:** The //%%__%%construct()// and //%%__%%destruct()// methods won'be changed. They won't allow //void// as a return type given the fact that (almost) all languages, including PHP, have the concept of Constructors and Destructors "returning" something after their execution. +**Note:** The //%%__%%construct()// and //%%__%%destruct()// methods won'suffer any changes. They won't allow //void// as a return type given the fact that (almost) all languages, including PHP, don'have the concept of Constructors and Destructors "returning" something after their execution. 
      
 ===== Backward Incompatible Changes ===== ===== Backward Incompatible Changes =====
Line 95: Line 91:
   * //%%__%%sleep()//: https://3v4l.org/dH96A   * //%%__%%sleep()//: https://3v4l.org/dH96A
  
-===== Proposed Voting Choices =====+===== Voting =====
  
-Yes/No.+Voting started on 2020-05-29 at 18h (CEST) and ends on 2020-06-19 at 18h (CEST). 
 + 
 +<doodle title="Ensure correct signatures of magic methods" auth="carusogabriel" voteType="single" closed="true"> 
 +   Yes 
 +   No 
 +</doodle>
  
 ===== External resources ===== ===== External resources =====
rfc/magic-methods-signature.txt · Last modified: 2020/08/01 23:34 by carusogabriel