Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Define Stringable with toString():string method#5088

Closed
nicolas-grekas wants to merge 1 commit into
php:masterphp/php-src:masterfrom
nicolas-grekas:stringable-regular-methodnicolas-grekas/php-src:stringable-regular-methodCopy head branch name to clipboard
Closed

Define Stringable with toString():string method#5088
nicolas-grekas wants to merge 1 commit into
php:masterphp/php-src:masterfrom
nicolas-grekas:stringable-regular-methodnicolas-grekas/php-src:stringable-regular-methodCopy head branch name to clipboard

Conversation

@nicolas-grekas
Copy link
Copy Markdown
Contributor

This PR is opened for the purpose of comparison with #5083

It adds a new interface:

interface Stringable
{
   public function toString(): string;
}

Implementing this interface triggers the same magic behavior as implementing __toString().

Compared to #5083, the new method has no double underscore as a prefix, which means it can more easily be used as part of public APIs.

Yet, it requires a more invasive change in the engine, and leads to duplicate __toString() and toString() methods for BC. Since adding a method named toString() can be done purely in userland, it appears that this approach might not be the preferred one for php-internals, which seeks for the lesser complexity.

@nicolas-grekas nicolas-grekas deleted the stringable-regular-method branch January 15, 2020 19:17
@slavcodev
Copy link
Copy Markdown

@nicolas-grekas I appriciate the effort you put in this PR. Thank you.

I would like to be able to add a public API to the object for mapping to the string without losing the advantage of internal coherence in string functions but I see the issue with duplicates of code for BC. So yeah, if this does not fit the PHP development path then further discussion on this topic is not worth it.

Again, thank you for your time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.