[wp-hackers] Re: Improving Plugin (and Theme) metadata
Lionel Elie Mamane
lionel at mamane.lu
Tue Mar 4 18:19:41 GMT 2008
On Tue, Mar 04, 2008 at 05:36:40PM +0100, Lionel Elie Mamane wrote:
> Nikolay Bachiyski wrote:
>> Although westi's method of explicitly defining the metadata in php
>> code is cleanest and is easier to deal with on our side, it will
>> have two side effects, which are not desirable:
>> 2. Harder to parse, without including the php file.
>> Again, we can't make all plugin developers to start offering their
>> plugin in a directory with a special, metadata php file.
> Hmm... I don't know PHP intimately, but if we can put PHP code in
> specially-tagged comments, easily parse it and run it, we avoid the
> "directory and extra metadata php file" problem.
Yes, we can! Here's code. Run the get-metadata script with
/path/to/other/attached/file/foo as first command-line argument for an
example.
--
Lionel
-------------- next part --------------
#! /usr/bin/php
<?php
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
}
$source = file_get_contents($argv[1]);
$tokens = token_get_all($source);
foreach ($tokens as $token) {
if (is_string($token)) {
// simple 1-character token
} else {
// token array
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_ML_COMMENT:
if ( substr($text,0,13) == "/*WP_METADATA" ) {
echo substr($text,13,-2);
eval(substr($text,13,-2));
echo "$argv[1] defined \$description to be: $description";
}
}
}
}
echo "\n";
?>
-------------- next part --------------
<?php
/*WP_METADATA
$description = "Change all colors to a random shade of pink";
*/
?>
More information about the wp-hackers
mailing list