자동 로딩

composer를 사용하여 PSR-0 규격의 파일 로드하기

webman은 PSR-4 자동 로딩 규격을 따릅니다. 비즈니스에서 PSR-0 규격의 코드베이스를 로드해야 하는 경우, 아래의 작업을 참고하십시오.

  • extend 디렉토리를 새로 만들어 PSR-0 규격의 코드베이스를 저장합니다.
  • composer.json을 편집하여 autoload 아래에 다음 내용을 추가합니다.
"psr-0" : {
    "": "extend/"
}

최종 결과는 다음과 비슷합니다.

  • composer dumpautoload 명령어를 실행합니다.
  • php start.php restart 명령어를 실행하여 webman을 재시작합니다 (주의: 반드시 재시작해야 적용됩니다).

composer를 사용하여 특정 파일 로드하기

  • composer.json을 편집하여 autoload.files 아래에 로드할 파일을 추가합니다.

    "files": [
    "./support/helpers.php",
    "./app/helpers.php"
    ]
  • composer dumpautoload 명령어를 실행합니다.

  • php start.php restart 명령어를 실행하여 webman을 재시작합니다 (주의: 반드시 재시작해야 적용됩니다).


composer.json의 autoload.files에 설정된 파일은 webman이 시작되기 전에 로드됩니다. 그러나 프레임워크의 config/autoload.php에서 로드된 파일은 webman이 시작된 후에 로드됩니다.
composer.json의 autoload.files에서 로드된 파일이 변경된 경우, 반드시 restart해야 적용됩니다. reload는 적용되지 않습니다. 프레임워크의 config/autoload.php에서 로드된 파일은 핫 로딩을 지원하므로, 변경 후 reload하면 적용됩니다.

프레임워크를 사용하여 특정 파일 로드하기

일부 파일은 SPR 규격에 맞지 않아 자동 로드가 불가능할 수 있습니다. 이 경우 config/autoload.php를 통해 이러한 파일을 로드할 수 있습니다. 예를 들어:

return [
    'files' => [
        base_path() . '/app/functions.php',
        base_path() . '/support/Request.php', 
        base_path() . '/support/Response.php',
    ]
];


autoload.php에서 support/Request.phpsupport/Response.php 두 파일을 로드하도록 설정한 이유는, vendor/workerman/webman-framework/src/support/ 경로에도 동일한 두 파일이 있기 때문입니다. 우리는 autoload.php를 통해 프로젝트 루트 디렉토리의 support/Request.phpsupport/Response.php를 우선 로드하도록 설정하여 이 두 파일의 내용을 사용자 정의할 수 있지만, vendor의 파일을 수정할 필요는 없습니다. 만약 이 파일들을 사용자 정의할 필요가 없다면, 이 두 설정을 무시할 수 있습니다.