Re: PHP 5.4 - Meta attribute (aka. Annotations) support discussion
| From: | Alec | Date: | Tue, 16 Nov 2010 02:53:50 +0000 |
| Subject: | Re: PHP 5.4 - Meta attribute (aka. Annotations) support discussion | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-50222@lists.php.net to get a copy of this message | ||
To help keep track of votes I made a public Google doc:
https://docs.google.com/document/d/11I7noRyNPbmgeFc1OSAFZfCfY3w3U4kNHpTVds09JCw/edit?hl=en
I have recorded the 4 so far, but everytime you vote--or if you notice someone voted and didn't record it on the Google doc, please record it.
This will help us keep track of votes because sometimes they can get lost in the list.
On 11/15/2010 9:43 PM, Pierrick Charron wrote:
+1 On 15 November 2010 21:27, guilhermeblanco@gmail.com< guilhermeblanco@gmail.com> wrote:@Zeev: That topic was related to an already built patch, which some where in favor, some against. That discussion lead to nowhere. So I opened a thread topic by topic for some democracy approval. As soon as we reach some reasonable consensus, we can start another patch implementation based on what we end up with this thread. If result of the poll says "OK" to meta attribute, then we can discuss next topic (possible implementations). Until then, I'd rather appreciate everyone to stick to their votes instead of revamp another discussion that lead to nothing. BTW, I forgot to add my vote: +1 On Mon, Nov 15, 2010 at 8:22 PM, Zeev Suraski<zeev@zend.com> wrote:I don't see a point in repeating the discussion we've already had on thattopic several weeks ago. There needs to be an overwhelmingly good reason to add a brand new syntax to the language, a whole branch of it in the case of annotations - and there simply isn't.Zeev(aka.-----Original Message----- From: guilhermeblanco@gmail.com [mailto:guilhermeblanco@gmail.com] Sent: Monday, November 15, 2010 7:08 PM To: PHP internals Subject: [PHP-DEV] PHP 5.4 - Meta attribute (aka. Annotations) support discussion Hi folks, I'll start a series of topics (in this thread) about meta attributediscussed.Annotations) discussion. So as soon as we agree on each topic I'll open another point to bePHPOnly when we reach some consensus I'll open another topic discussion. I suggest to have a poll for each topic, so we can do some democratic internals decision. I'd reduce the scope of voters to only people withcontext.karma. The first topic to be defined is: Does PHP need meta attribute support? Any language is built at the top of syntax, words, semantics andfitWe cannot define it as a language if we don't have these 4 parts wellparts.together. For a simple sentence like: I am all ears, we can easily identify theseanotherBut the real meaning of this sentence (context) is only achieved withsensitivepart of the language: signifier-significate. A signifier is an atomic form, material element, visible, sensitive. A significate is an idea, semantic content, conceptual element, notbrings aperceptive. This important part is only reminded when we get back to semantics, specifically when talking about idiomatic expressions, a metaphor in our sample. The meaning will only work if we have the context, a known information. Our sentence would mean that spoker person only have ears, while the true meaning is that he/she is paying attention. A computer language doesn't differ from a language by any means. We have tokens (words), a syntax, semantic. But the lack of contextualizationcanhole on language and how your application should behave. This behaviorsomeonebe achieved by many different ways; the simplest way is known as meta information. Considering you have a lack of idiomatic expressions knowledge ofnotify himthat is reading. He'd think person only have ears, but if you metatothat it is a metaphor, he'd try to find a different meaning. Example: (Metaphor) I am all ears. Now that we find how meta-information can benefit languages, it is timeunderstand how meta-information can benefit a computer language. A good example is define a Service that validates Domain Objects. Imagining a scenario where you have a User class that holds email and password. Email and password fields must be validated, for example,serviceas an email and password with at least 6 chars. A generic validationvalidatecould not have the User validation hardcoded inside the service, so the solution would be an external factor that explains to service how toclassthe DO. One of the possible implementations would be a UserValidatorgoodthat contains validation rules for each field. This external factor is aReflecting thesample of meta-information. But how would a meta attribute would solve this situation? A Service could simple retrieve the validation instructions byvalidationclass which instance is going to be validated. Basically, to validate a Domain Object, it is simply required to addvisit:rules on desired attributes. Example: class User {<Email Meta Information> protected $email;<At least 6 chars Meta Information> protected $password;} *NOTE*: Please understand that this do not enter in any implementation details. It is not time (yet) to talk baout docblock, new syntax, etc. Scope now is simpler than that. Now that is possible to see how meta attribute support could benefit a language, I compiled a simple list of known projects and how can they benefit of meta support: - phpUnit Providing meta functionality for test cases, examples: @dataProvider for test data iteration, @expectedException for catching exceptions, etc. - Doctrine For Object-Relational mapping, examples: @Entity, @OneToOne, @Id, etc. - Zend Framework Server classes Used to automate mappings for XML-RPC, SOAP, etc. - FLOW3 for dependency injection and validation - Symfony2 for validation and routing rules - Others: Validation, Functional Behavior injection (which could take advantage of Traits), etc. Poll will be opened for voting for 7 days (1 week) starting from now. Poll will be closed next Monday at 5pm GMT. Question: Does PHP need meta attribute support? Happy voting! -- Guilherme Blanco Mobile: +55 (16) 9215-8480 MSN: guilhermeblanco@hotmail.com São Paulo - SP/Brazil -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe,-- Guilherme Blanco Mobile: +55 (16) 9215-8480 MSN: guilhermeblanco@hotmail.com São Paulo - SP/Brazil -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.phphttp://www.php.net/unsub.php