PHP динамические DocBlocks уровня страницы

Мне было интересно, есть ли способ взаимодействия с DocBlocks уровня страницы. Мой вопрос более конкретно касается разработки плагинов WordPress, но этот вопрос возник также в среде без WordPress.

Причина в основном заключается в возможности легко менять ВЕРСИИ и имена в большом проекте, возможно, с постоянным определением, но это будет отражено и в докблоке.

Следующий пример Docblock взят из плагина WordPress, который я пишу:

/*
Plugin Name: o99 Auxilary Functions v0.4.7
Plugin URI: http://www.myurl.com
Description: some simple description that nobody reads.
Version: 0.4.7
Author: my cool name
Author URI: http://www.ok-alsouri.com
*/

Есть ли способ превратить его в:

$ver = '0.4.7';
$uri = 'http://www.myurl.com';
$desc = 'some simple description that nobody reads.';
$mcn = 'my cool name';
etc.. 
etc..

    /*
    Plugin Name: o99 Auxilary Functions ($ver)
    Plugin URI: ($uri)
    Description: ($desc)
    Version: ($ver)
    Author: ($mcn)
    Author URI: ($$uri)
    */

очевидно, чтобы эхо работало, мне нужно было бы разбить сам докблок, и я не могу ЗАПИСАТЬ докблок непосредственно в его собственный файл.

В шортах: могу ли я как-то "сгенерировать" докблок с самим php (я думаю, что ответ - "нет" для самой страницы.. Но, возможно, я ошибаюсь, и у кого-то есть какой-то аккуратный взлом:-))

Это вообще возможно?

1 ответ

Решение

Вы могли бы сделать:

$ver = '0.4.7';
$uri = 'http://www.myurl.com';
$desc = 'some simple description that nobody reads.';
$mcn = 'my cool name';
etc.. 
etc..

$docblock = <<<TEMPLATE
/*
Plugin Name: o99 Auxilary Functions ($ver)
Plugin URI: $uri
Description: $desc
Version: $ver
Author: $mcn
Author URI: $uri
*/
TEMPLATE;

$file_data = $docblock;
$file_data .= file_get_contents('yourplugin.php');
file_put_contents('yourplugin.php', $file_data);
Другие вопросы по тегам