2017-12-12 1 views
1

비슷한 문제를 확인했지만 다른 사람들이 게시했지만 여전히 내 코드에서 잘못된 부분을 볼 수 없습니다.Symfony 첫 페이지 - 파일에 오토로더 예상 클래스 [...]가 정의되어 있습니다.

난 그냥 문서에서 복사 - https://symfony.com/doc/3.4/page_creation.html

<?php 

// src/AppBundle/Controller/LuckyController.php 
namespace AppBundle\Controller; 

use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\Routing\Annotation\Route; 

class LuckyController 
{ 
    /** 
    * @Route("/lucky/number") 
    */ 
    public function numberAction() 
    { 
     $number = mt_rand(0, 100); 

     return new Response(
      '<html><body>Lucky number: '.$number.'</body></html>' 
     ); 
    } 
} 

enter image description here

오토로더 예상 클래스 "응용 프로그램 \ 컨트롤러 \ LuckyController"가 될 파일 "E 정의 : \ projektai \ php 프로젝트 \ htdocs \ mokomieji \ weather_demo_3 \ vendor \ composer /../../ src \ Controller \ LuckyController.php ". 파일이 발견되었지만 클래스가 없거나 클래스 이름 또는 네임 스페이스에 E : \ projektai \ php projektai \ htdocs \ mokomieji \ weather_demo_3 \ config/services.yaml (이 경우 이로드 됨)에 오타가있을 수 있습니다. resource "E : \ projektai \ php projektai \ htdocs \ mokomieji \ weather_demo_3 \ config/services.yaml").

그래서 파일이 발견되었지만 클래스가 발견되지 않았습니다. 어떻게 수업을 찾을 수 없습니까? 나는 그것을 참조. 어떻게 검색하려고합니까?

composer.json

{ 
    "type": "project", 
    "license": "proprietary", 
    "require": { 
     "php": "^7.0.8", 
     "symfony/console": "^3.4", 
     "symfony/flex": "^1.0", 
     "symfony/framework-bundle": "^3.4", 
     "symfony/lts": "^3", 
     "symfony/yaml": "^3.4" 
    }, 
    "require-dev": { 
     "symfony/dotenv": "^3.4" 
    }, 
    "config": { 
     "preferred-install": { 
      "*": "dist" 
     }, 
     "sort-packages": true 
    }, 
    "autoload": { 
     "psr-4": { 
      "App\\": "src/" 
     } 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "App\\Tests\\": "tests/" 
     } 
    }, 
    "scripts": { 
     "auto-scripts": { 
      "cache:clear": "symfony-cmd", 
      "assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd" 
     }, 
     "post-install-cmd": [ 
      "@auto-scripts" 
     ], 
     "post-update-cmd": [ 
      "@auto-scripts" 
     ] 
    }, 
    "conflict": { 
     "symfony/symfony": "*" 
    }, 
    "extra": { 
     "symfony": { 
      "id": "01C16444CCZTY1MPPEE5GJZ63G", 
      "allow-contrib": false 
     } 
    } 
} 

답변

2

당신은 아마 심포니 플렉스를 사용하고 그 구조를 기반으로, 그래서 당신의 네임 스페이스는 namespace App\Controller;

4.0 version of documentation로 전환 시도해야한다. 내 경우

+0

심포니 플렉스를 사용하고 있다고 생각하지 않습니다. 적어도 그것이 무엇인지는 모르겠습니다. 주석 작성 후 composer.json을 추가합니다. 내 임무는 심포니 3을 사용하는 것이므로 심포니 3 워드 프로세서를 사용하는 것이 좋습니다. –

+1

@ Darius.V symfony flex를 사용하고 있습니다. 작곡가의 의존성을 확인하고 Symfony 4의 설명서를 따라 가면 네임 스페이스가 이제 'App'입니다. 또한 Symfony 3.4 = Symfony 4 – kunicmarko20

+1

아니요, symfony 3.4는 Symfony 4와 같지 않습니다. v4에서와 마찬가지로 사용되지 않는 모든 기능은 제거됩니다. –

3

, 나는 한 동안 PHP를 사용하지 않았다, 나는 또한 복사/튜토리얼에서 붙여 넣기,하지만 실제로 파일의 시작 부분에

<?php 

를 추가하는 것을 잊었다. 동일한 오류 메시지가 나타납니다.

관련 문제