2017-12-06 15 views
0

route을 덮어 쓰려면 여기 제공된 조언을 따르고, 내 자신의 helpers.php을 생성하고 부트 스트랩에로드하십시오. 그것은 phpunit을의 브라우저에서 잘하지만 너무 많이 작동합니다PHPUnit을 사용하여 Laravel 5의 헬퍼 무시

PHP Fatal error: Cannot redeclare route() (previously declared in /var/www/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:707) in /var/www/app/Http/helpers.php on line 25 

phpunit을 대신 phpunit.xml의 부트 스트랩 세트의 공급 업체의 자동로드를 호출하고 나는 그것을 재정의하는 방법을 모르는 것 같다.

내가가 제어되지 않은 Laravel의 helpers.php

#0 /var/www/vendor/composer/autoload_real.php(66): require() 
#1 /var/www/vendor/composer/autoload_real.php(56): composerRequirefaa86f5c74caea0c3ebf4fa6247e01ed('f0906e6318348a7...', '/var/www/vendor...') 
#2 /var/www/vendor/autoload.php(7): ComposerAutoloaderInitfaa86f5c74caea0c3ebf4fa6247e01ed::getLoader() 
#3 /var/www/vendor/phpunit/phpunit/phpunit(51): require('/var/www/vendor...') 
#4 {main} 
    thrown in /var/www/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 699 

요소 만 내부 예외를 던지는 때 얻을 호출 스택입니다. 내 composer.json 일부 편집을 한

편집, 내 헬퍼를로드합니다. 지금 vendor/composer/autoload_files.php 생성 : 나는 Laravel의 이전에 내 도우미를 주입 할 수있는 방법이 있다면

<?php 

// autoload_files.php @generated by Composer 

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

return array(
    // ... 

    'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php', 
    '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php', 
    '224ac75459a4044275cfdffe33336135' => $baseDir . '/app/Http/helpers.php', 
); 

는 기본적으로,이 내 문제를 해결할 수 있습니다.

나는이 일을 디버깅하는 것을 정말 좋아하고, 내 머리 속에서이 작은 노래를 듣는 것을 좋아합니다. "그 멋진 정적 헬퍼를 갖기 좋은 아이디어"라고, 그것은 거친 행동입니다.

+0

[덮어 쓰기 laravel 5 도우미 함수 (의 가능한 중복 https://stackoverflow.com/questions/28474640/ overwrite-laravel-5-helper-function) – ceejayoz

+0

@ceejayoz 나는 여기에 표시된 내용을 이미 따라하고 있습니다. – AsTeR

+0

https://laracasts.com/discuss/channels/testing/unit-testing-and-helper-functions-problem에서 의견을 추적하는 데 도움이되는지 확인하십시오. – ceejayoz

답변

0

편집을 읽으면 자동로드에서 파일을 주입하는 것이 효과가 없다는 것을 알 수 있습니다.

https://packagist.org/packages/funkjedi/composer-include-files이 문제를 해결하려면 여기를 클릭하십시오.

첫 방송 :

composer require funkjedi/composer-include-files 

다음 업데이트하여 composer.jsonextra 필드 :

"extra": { 
    "include_files": [ 
     "app/Http/helpers.php" 
    ] 
}