나는 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
}
나는이 일에 대한 단서가있어. 내가 뭘 잘못 했니? 잘못된 폴더 구조입니까? 내가 잊었던 게 있니? 누구든지 더 많은 정보가 필요하면 그냥 물어보십시오. 도와 줘서 고마워!
내 HomeController 클래스는, homecontroller.php에 위치 'src/wanako/provider/controller /'폴더에 저장하십시오. 내가 WanaKo \ Provider \ Controller라는 네임 스페이스를 가지고 있기 때문에 그 말이 맞지 않습니까? 폴더 구조의 재배치는 어떻게해야합니까? – user3581249
src/WanaKo/Provider/Controller/HomeController.php –
감사합니다. 리눅스가 대소 문자를 구별한다는 사실을 잊어 버렸다. – user3581249