-
Notifications
You must be signed in to change notification settings - Fork 0
marcelog/AnoForPHP
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
INSTALL
=======
1.- Download the patch.
2.- Apply with: patch -p1 < anoforphp-5.3.5.diff
3.- Compile and install PHP as usual.
BEWARE
======
This is an *experimental* work. I'm not that familiar with the internals of ZendEngine(tm) so I wont promess there wont be any memory leaks, or crashes. It seems stable, but please report any issues you may spot so I can correct them as soon as possible ;)
ABOUT
======
First things first, this patch is made for PHP 5.3.5, but it should be easy to port it to other 5.3.+ versions.
Now, the idea behind this patch is pretty obvious. Annotations are a very popular thing and php lacks of them. Also, it's pretty expensive to have them inside doc blocks (i.e: /** */), so this patch is made mostly for the extension reflection of php and the ZendEngine2(tm).
The annotation token is "@@", because the "@" was already taken. So for instance, you would do:
@@AnAnnotation
@@AnotherAnnotation("something")
@@AnotherAnnotation(key1="value1")
@@AnotherAnnotation(key1="value1", key2="value2")
...
class something {
...
}
also:
class something {
@@AnAnnotation
@@AnotherAnnotation("something")
@@AnotherAnnotation(key1="value1")
@@AnotherAnnotation(key1="value1", key2="value2")
...
public function aMethod() {
...
}
}
And, best of all:
class something {
public function aMethod(@@AnAnnotation $a, @@An1 @@An2(key1="value1") $b) {
...
}
}
Homepage
========
http://marcelog.github.com/
Thanks To
=========
Pierrick Charron (https://github.com/adoy) for this comments on the use of TSRLM macros and also for his issue reports.
About
An experimental patch to PHP/ZendEngine to bring native annotations to PHP
Resources
Stars
Watchers
Forks
Packages 0
No packages published