English 中文(简体)
仅摘自PHP应用程序的接口,以完成编码
原标题:Extracting just the interface from a PHP application, for code completion
  • 时间:2010-10-01 13:36:24
  •  标签:
  • php

这是我的第一个问题。

我是PHP应用发展小组的一部分(即我正在开发这一应用)。 我们将称之为我们的核心法典。 我们有一个单独的小组,每天使用核心代码,他们利用核心代码开发其他地点。

我们现在就这样做了,目前我们让我们的开发商能够查阅核心法典,而且所有东西都是很精干的,但今后我们正计划用购买力平价记录该守则,然后我们又赢得了赋予它们实际守则的必要。

那么,问题就在于,如果我们的开发商没有实际守则,那么他们的发展、发展和发展网络将不再给他们带来完成法典的好处。

现在,我使用Netbeans,我注意到它储存了标准等档案。 我的问题是:

没有人知道我能够产生这种档案的方法? 他们不需要包含任何法典,他们应当排除实际的购买力平价,并且只是离开所有班级和购买力平价。

非常感谢任何帮助。 感谢。

最佳回答

我完全可以理解,为什么你想要这样做。 但是,这将使得团结和团结部更加难以瓦解(因为它们可以通过核心法典追踪呼吁)。

但是,如果你真想这样做的话,你可以创建一种发电机,使用token_get_all,从每个档案中取出所有标物,并写出一个只有适当标子的新字(接口,有空码区)。

要么使用reflection来制作这些课程。 基本上为每个类别装上一个新的反射器,并使用其方法生成该代码。 例如,制定方法:

foreach ($reflector->getMethods() as $method) {
    $signature = $method->getDocComment() . "
";
    $modifiers = $method->getModifiers();

    if ($modifiers & ReflectionMethod::IS_PUBLIC) {
        $signature .=  public  ;
    } elseif ($modifiers & ReflectionMethod::IS_PROTECTED) {
        $signature .=  protected  ;
    } elseif ($modifiers & ReflectionMethod::IS_PRIVATE) {
        $signature .=  private  ;
    }
    if ($modifiers & ReflectionMethod::IS_STATIC) {
        $signature .=  static  ;
    }
    if ($modifiers & ReflectionMethod::IS_ABSTRACT) {
        $signature .=  abstract  ;
    }
    if ($modifiers & ReflectionMethod::IS_FINAL) {
        $signature .=  final  ;
    }
    $signature .=  function   . $method->name. ( ;
    $params = array();
    foreach ($method->getParameters() as $param) {
        $paramSignature = $param->name;
        if ($param->isDefaultAvailable()) {
            $paramSignature .=   =   . var_export($param->getDefaultValue(), true);
        }
        $params[] = $paramSignature;
    }
    $signature .= implode( ,  , $params) .  ) {} ;
}

还需要做更多的工作(例如打背等),但应该让你开始这样做。

问题回答

只是看着这一点,我认为我会得出一些结论。

首先,“超大”的解决办法肯定是我利用“反思”课程,而不是我直到现在才看到的最好办法,它们像实现我的目标的好办法一样。

第二,似乎没有人确实这样做了,显然我们不在此寻找一个共同使用案例。

我不敢确定我是否要走下去,但如果我这样做,我就认为我会采用一种简单的方法。

每个反思班都提供一种__toString(......)方法,当被点燃的PHP物体(阶级、方法或任何东西)被送回时,则为PHP syntax。 因此,我认为,在本案中实际使用反射器的最佳办法是将其分类:

class ReflectionClassRebuilder extends ReflectionClass{

/**
 * Comments (Including an auto generated comment
 *
 * Constants
 *
 * Static Properties
 *
 * Static Methods
 *
 * Properties
 *
 * Methods
 *
 */


public function  __toString() {

    foreach($this->getMethods() as $method){
        //Build each of the methods, with comments as valid PHP syntax
    }

}

}


$reflection = new ReflectionClassRebuilder("Example_Class");

//Write $reflection 

(string) $reflection; //Returns the class for writing to a file.

就在帮助任何人的情况下。

感谢。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签