【问题标题】:PHP dynamic Page-level DocBlocksPHP 动态页面级 DocBlocks
【发布时间】:2012-06-23 02:59:56
【问题描述】:

我想知道是否有办法与页面级 DocBlock 进行交互。 我的问题更具体地说是关于 wordpress 插件开发,但这个问题也出现在非 wordpress 环境中。

原因主要是可以在整个大型项目中轻松更改 VERSIONS 和名称,并且可能具有常量定义 - 但这也将反映在 docblock 中..

以下示例 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)
    */

显然,要让 echo 工作,我需要破坏 docblock 本身,并且我不能将 docblock 直接写入它自己的文件中。

简而言之:我能否以某种方式用 php 本身“生成”一个 docblock(我认为答案是 - 页面本身的“否”.. 但也许我错了,有人有一些巧妙的 hack :-))

这可能吗?

【问题讨论】:

    标签: php wordpress docblocks


    【解决方案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);
    

    【讨论】:

    • 谢谢。我不知道如何实现这一点。我相信你建议把它放在一个外部文件中来修改这个文件。我正在寻找一种在同一个文件中使用它的方法。 Wordpress 将此主插件文件(和 docblock)作为对激活的引用 - 换句话说,如果有效的 docblock 不存在 - 就 wordpress 而言 - 它不是插件文件..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2011-11-08
    • 2019-11-07
    • 2016-11-28
    • 2013-01-14
    相关资源
    最近更新 更多