2014-10-15 3 views
2

나는 Silex로 PHP 응용 프로그램을 만들었습니다. 내 랩톱에서 WAMP 솔루션을 사용하여 Composer와 함께 개발하고 있습니다.PHP - Silex : 치명적인 오류 : 클래스를 찾을 수 없습니다.

이제 응용 프로그램 ('app', 'src'및 'web')을 업로드하고 데이터베이스를 업로드 할 때 config.php를 올바른 데이터베이스 자격 증명으로 변경합니다. composer 명령 (composer.phar - o install)를 사용하여 공급 업체 종속성을 설치합니다.

이 시점까지 모든 것이 제대로 작동하기 때문에 작성자는 '공급 업체'지도를 만들고 오류없이 종속성을 설치합니다. 그러나 웹 사이트를 방문하면 오류가 표시됩니다.

Fatal error: Class 'WanaKo\Provider\Controller\HomeController' not found in /home/wanako/domains/wanako.net/app/app.php on line 37 

오류를 해결하려면 어떻게해야합니까? 나는 서버가 PHP 5.5.16로 DirectAdmin에를 실행하고 나는에게 '으로 public_html /' '웹 /'에서 심볼릭 링크를 만들었다 있다는 것을 추가해야

디렉토리 구조는 다음과 같습니다

/home/wanako/domains/wanako.net/ 
├── app 
├── logs 
├── public_ftp 
│ └── incoming 
├── public_html -> web/ 
├── src 
│ ├── wanako 
│ │ ├── provider 
│ │ │ └── controller 
│ │ └── repository 
│ └── views 
│  ├── errors 
│  └── home 
├── vendor 
│ ├── composer 
│ ├── doctrine 
│ │ ├── common 
│ │ └── dbal 
│ ├── igorw 
│ │ └── config-service-provider 
│ ├── imagine 
│ │ └── imagine 
│ ├── ircmaxell 
│ │ └── password-compat 
│ ├── knplabs 
│ │ └── repository-service-provider 
│ ├── monolog 
│ │ └── monolog 
│ ├── neutron 
│ │ └── silex-imagine-provider 
│ ├── pimple 
│ │ └── pimple 
│ ├── psr 
│ │ └── log 
│ ├── silex 
│ │ └── silex 
│ ├── swiftmailer 
│ │ └── swiftmailer 
│ ├── symfony 
│ │ ├── config 
│ │ ├── debug 
│ │ ├── event-dispatcher 
│ │ ├── filesystem 
│ │ ├── form 
│ │ ├── http-foundation 
│ │ ├── http-kernel 
│ │ ├── icu 
│ │ ├── intl 
│ │ ├── locale 
│ │ ├── options-resolver 
│ │ ├── property-access 
│ │ ├── routing 
│ │ ├── security-core 
│ │ ├── security-csrf 
│ │ ├── translation 
│ │ ├── twig-bridge 
│ │ └── validator 
│ └── twig 
│  └── twig 
└── web 
    ├── css 
    ├── font 
    ├── images 
    └── js 

작곡가 .json

{ 
"name": "Wanako/Wakano.net", 
"require": { 
      "silex/silex": "1.0.*@dev", 
      "twig/twig": ">=1.8,<2.0-dev", 
      "doctrine/dbal": "2.*", 
      "knplabs/repository-service-provider": "dev-master", 
      "symfony/twig-bridge": "~2.1", 
      "symfony/form": "~2.1", 
      "symfony/validator": "~2.1", 
      "symfony/config": "~2.1", 
      "symfony/translation": "~2.1", 
      "symfony/locale": "~2.1", 
      "monolog/monolog": ">=1.0.0", 
      "igorw/config-service-provider": "~1.1", 
      "swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev", 
      "ircmaxell/password-compat": "dev-master", 
      "neutron/silex-imagine-provider": "~0.1" 
}, 
"autoload": { 
      "psr-0": { 
        "WanaKo": "./src/" 
      } 
    } 
} 

응용 프로그램/app.php의 라인 37에 나는있어 :

$app->mount('/', new WanaKo\Provider\Controller\HomeController()); 

homecontroller.php (폴더 SRC/wanako/제공/컨트롤러 /)

<?php 

namespace WanaKo\Provider\Controller; 

use Silex\Application; 
use Silex\ControllerProviderInterface; 
use Silex\ControllerCollection; 
use Symfony\Component\Validator\Constraints as Assert; 

class HomeController implements ControllerProviderInterface { 
    $controllers = $app['controllers_factory']; 
    // Bind sub-routes 
    $controllers->get('/', array($this, 'home'))->method('GET')->bind('home.news'); 
    return $controllers; 
} 

public function home(Application $app) { 
    // STUFF 
} 

나는이 일에 대한 단서가있어. 내가 뭘 잘못 했니? 잘못된 폴더 구조입니까? 내가 잊었던 게 있니? 누구든지 더 많은 정보가 필요하면 그냥 물어보십시오. 도와 줘서 고마워!

답변

1

나는 PSR 0에 이렇게 제대로 작동하려면 올바른 경우 폴더 구조와 파일 이름을 믿습니다 :

에 배치됩니다
src/WanaKo/Provider/Controller/HomeController.php 
+0

내 HomeController 클래스는, homecontroller.php에 위치 'src/wanako/provider/controller /'폴더에 저장하십시오. 내가 WanaKo \ Provider \ Controller라는 네임 스페이스를 가지고 있기 때문에 그 말이 맞지 않습니까? 폴더 구조의 재배치는 어떻게해야합니까? – user3581249

+0

src/WanaKo/Provider/Controller/HomeController.php –

+1

감사합니다. 리눅스가 대소 문자를 구별한다는 사실을 잊어 버렸다. – user3581249

관련 문제