복붙노트

함수가 정의 된 위치를 찾는 방법은 무엇입니까?

PHP

함수가 정의 된 위치를 찾는 방법은 무엇입니까?

주어진 함수가 어떤 파일과 라인에서 정의되었는지 어떻게 알 수 있습니까?

해결법

  1. ==============================

    1.PHP 자체에서 다음 작업을 수행 할 수도 있습니다.

    PHP 자체에서 다음 작업을 수행 할 수도 있습니다.

    $reflFunc = new ReflectionFunction('function_name');
    print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
    
  2. ==============================

    2.IDE (Eclipse PDT 권장)를 사용하거나 Linux에서 사용하거나 grep을 사용하여 grep 할 수 있습니다. 리눅스에서는 다음과 같이 될 것이다.

    IDE (Eclipse PDT 권장)를 사용하거나 Linux에서 사용하거나 grep을 사용하여 grep 할 수 있습니다. 리눅스에서는 다음과 같이 될 것이다.

    grep -R "function funName" *
    

    프로젝트의 루트 폴더에서.

  3. ==============================

    3.Netbeans와 같은 IDE를 사용하는 경우 함수 사용을 Ctrl + 클릭하여 정의한 프로젝트 폴더 내에 파일이 있다고 가정하면 정의 된 위치로 이동합니다.

    Netbeans와 같은 IDE를 사용하는 경우 함수 사용을 Ctrl + 클릭하여 정의한 프로젝트 폴더 내에 파일이 있다고 가정하면 정의 된 위치로 이동합니다.

    이 작업을 수행 할 코드 나 기능은 없습니다.

  4. ==============================

    4.Heres는 특정 문자열에 대한 전체 프로젝트 파일을 스캔하고 기본 파일 만 사용하여 시작하는 파일 위치 및 파일 위치를 알려주는 기본 기능을 제공합니다. 희망이 사람을 돕는 ...

    Heres는 특정 문자열에 대한 전체 프로젝트 파일을 스캔하고 기본 파일 만 사용하여 시작하는 파일 위치 및 파일 위치를 알려주는 기본 기능을 제공합니다. 희망이 사람을 돕는 ...

    <?php 
    $find="somefunction()";
    
    echo findString('./ProjectFolderOrPath/',$find);
    
    function findString($path,$find){
        $return='';
        ob_start();
        if ($handle = opendir($path)) {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..") {
                    if(is_dir($path.'/'.$file)){
                        $sub=findString($path.'/'.$file,$find);
                        if(isset($sub)){
                            echo $sub.PHP_EOL;
                        }
                    }else{
                        $ext=substr(strtolower($file),-3);
                        if($ext=='php'){
                            $filesource=file_get_contents($path.'/'.$file);
                            $pos = strpos($filesource, $find);
                            if ($pos === false) {
                                continue;
                            } else {
                                echo "The string '$find' was found in the file '$path/$file and exists at position $pos<br />";
                            }
                        }else{
                            continue;
                        }
                    }
                }
            }
            closedir($handle);
        }
        $return = ob_get_contents();
        ob_end_clean();
        return $return;
    }
    ?>
    
  5. ==============================

    5.함수를 정의한 곳을 확인하는 또 다른 방법은 함수를 재정의하려고하면 PHP 오류 시스템은 단순히 함수가 이전에 정의한 위치를 알려줍니다.

    함수를 정의한 곳을 확인하는 또 다른 방법은 함수를 재정의하려고하면 PHP 오류 시스템은 단순히 함수가 이전에 정의한 위치를 알려줍니다.

  6. ==============================

    6.나는 "묘사 된"이란 "정의 된"것을 의미한다고 가정합니다. 이를 위해서는 이상적인 IDE가 필요합니다.

    나는 "묘사 된"이란 "정의 된"것을 의미한다고 가정합니다. 이를 위해서는 이상적인 IDE가 필요합니다.

  7. ==============================

    7.Tom의 솔루션이 마음에 들었으므로 ReflectionFunction (PHP 5 모두에서 작동해야 함)과 더 많은 트릭을 공유 할 수 있다고 생각했습니다.

    Tom의 솔루션이 마음에 들었으므로 ReflectionFunction (PHP 5 모두에서 작동해야 함)과 더 많은 트릭을 공유 할 수 있다고 생각했습니다.

    내부 기능의 위치 (예 : _)는 표시되지 않지만 다음과 같이 API를 인쇄 할 수 있습니다.

  8. ==============================

    8."Open Function Declaration"기능을 지원하는 IDE가 필요합니다. php를위한 좋은 점은 Eclipse PDT입니다.

    "Open Function Declaration"기능을 지원하는 IDE가 필요합니다. php를위한 좋은 점은 Eclipse PDT입니다.

    함수 정의를 찾으려면 함수 이름을 강조 표시하고 CTRL + 이름을 클릭하십시오.

  9. from https://stackoverflow.com/questions/2222142/how-to-find-out-where-a-function-is-defined by cc-by-sa and MIT license