/
컴포저 오토로더 최적화(composer auto loader optimization)

컴포저 오토로더 최적화(composer auto loader optimization)

개요

composer 의 auto loader 는 꽤 속도가 빠르지만 PSR-4 표준에 맞게 오토 로딩 룰을 만들 때 name space 와 일치하는 클래스 파일이 존재하는지 파일 시스템을 확인합니다.


이는 속도를 느리게 하지만 새로 클래스가 추가됐을 때 auto loader 구성을 다시 만들 필요가 없어서 개발 환경이 편리해 지는 장점이 있습니다.


하지만 운영 환경에서는 이미 정해진 클래스만 로딩하므로 이 방식을 사용하면 성능이 떨어지는 문제가 있습니다.


composer 는 이를 해결하기 위해 여러 가지 옵션을 제공합니다.

최적화 level 1 Class map 생성

composer 는 PSR-4 오토 로딩을 class map 으로 변환하는 기능을 제공하며 다음중 하나의 방법으로 활성화 할수 있습니다.

  1. composer.json 의 config 항목에 다음 내용 추가합니다. 

    "config": {
            "optimize-autoloader": true,
  2. install 이나 update 시 -o, --optimize-autoloader 옵션을 사용합니다.

    composer install -o
    composer update -o
  3. 커맨드에서 다음 명령을 실행합니다.

    composer dump-autoloader -o 


class map 은 다음과 같이 로딩할 클래스를 PHP array 로 만들어 놓으므로 file system 을 확인할 필요없이 빠르게 실행할 수 있습니다.

autoload_classmap.php
<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
    'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php',
    'App\\Helpers\\RoleNameConstant' => $baseDir . '/app/Helpers/RoleNameConstant.php',
    'App\\Http\\Controllers\\Api\\UserController' => $baseDir . '/app/Http/Controllers/Api/UserController.php',
    'App\\Http\\Controllers\\Auth\\ConfirmPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ConfirmPasswordController.php',


최적화 level 2/A


최적화 level 2/B


Ref

Related content

컴포저(PHP Composer) 속도 향상 시키기
컴포저(PHP Composer) 속도 향상 시키기
More like this
자동화(Automation)
자동화(Automation)
More like this
Ubuntu Mirror(우분투 미러)를 카카오등 국내 사이트로 설정해서 다운로드 속도 빠르게 하기
Ubuntu Mirror(우분투 미러)를 카카오등 국내 사이트로 설정해서 다운로드 속도 빠르게 하기
More like this
Windows 파일이나 폴더의 생성/수정일 변경하기
Windows 파일이나 폴더의 생성/수정일 변경하기
More like this
PHP Composer v1 설치/사용하기
PHP Composer v1 설치/사용하기
More like this
rpm command 정리 및 사용법
rpm command 정리 및 사용법
More like this