2014-06-21 2 views
2

작곡가가 normaly 패키지를 다운로드 했음에도 불구하고 autoload_namespaces.php 파일을 업데이트하지 않습니다. 내가 실수 한 부분을 이해할 수 없다. packagist에서 무언가를로드하면 네임 스페이스 파일이 성공적으로 업데이트됩니다.작곡가가 자동로드 네임 스페이스를 업데이트하지 않습니다.

프로젝트 구조

Structure

홈페이지 Composer.json

{ 
    "repositories":[ 
     { 
      "type": "package", 
      "package": { 
       "name": "test/framework", 
       "version": "1.0.0.1", 
       "dist": { 
        "url": "http://localhost/repo/1.zip", 
        "type": "zip" 
       } 
      } 
     } 
    ], 

    "require": { 
     "test/framework": "*" 
    } 
} 

패키지 composer.json

{ 
    "name": "test/framework", 
    "type": "library", 
    "require": { 
     "php": ">=5.2.4" 
    }, 
    "autoload": { 
     "psr-0" : { 
      "Test" : "lib/" 
     } 
    } 
} 

autoload_namespaces.php

<?php 

// autoload_namespaces.php @generated by Composer 

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

return array(
); 

답변

2

zip을 통해 리포지토리에 정의 된 패키지를 다운로드 중입니다. 이 경우

https://getcomposer.org/doc/05-repositories.md#package-2

난 당신이 같은 장소에서 패키지 정의를 정의해야합니다 생각합니다. 자동로드 정의가 정의 된 예제는 위의 링크를 참조하십시오. 당신은 또한 몇 가지 변화를 시도 할 수 있습니다

{ 
    "repositories":[ 
     { 
      "type": "package", 
      "package": { 
       "name": "test/framework", 
       "version": "1.0.0.1", 
       "dist": { 
        "url": "http://localhost/repo/1.zip", 
        "type": "zip" 
       }, 
       "autoload": { 
        "psr-4" : { 
         "Test\\": "lib" 
        } 
       } 
      } 
     } 
    ], 

    "require": { 
     "test/framework": "*" 
    } 
} 

http://harikt.com/blog/2014/05/29/hidden-gems-of-composer/

PS 이상 내 게시물을 참조 : PSR-4는 자동로드 PSR-0 구성 클래스를 수에 권장되는 방법입니다. https://getcomposer.org/doc/04-schema.md#autoload

2

하리 KT가 말한 것을 추가하기 만하면 composer는 ./vendor/composer 디렉토리의 installed.json 파일을 사용하여 composer.json 파일을 업데이트 한 후 공급 업체 디렉토리를 제거해야합니다. 자동로드 PHP 파일.

composer.json을 올바르게 설정했지만 기존 공급 업체 디렉토리를 삭제하지 않았으므로 Hari K T가 제공 한 대답이 작동하지 않는다고 가정했습니다.

관련 문제