http://URL 로 이동해 보면 Class 'App\helpers\LoginHelper' not found
오류가 납니다.
소스코드를 확인해 보면, LoginHelper
의 네임스페이스 helpers
의 대소문자가 틀렸음을 알 수 있습니다. Helpers
여야 하는데 helpers
로 적었네요.
app/Helpers/LoginHelper.php
<?php
namespace App\helpers;
개발 환경인 윈도우즈에서는 문제가 없었는데, 왜 리눅스 서버에 업로드했더니 문제가 발생했을까요? 윈도우즈는 파일 경로에 대소문자를 구분하지 않지만 리눅스는 파일 경로에 대소문자를 구분하기 때문입니다.
PSR에 따라 네임스페이스 각 경로의 첫번째 글자를 대문자로 바꾸겠습니다.
app/Helpers/LoginHelper.php
<?php
namespace App\Helpers;
우리는 헬퍼가 하나 더 있죠. 세션 헬퍼입니다. 함께 수정합니다.
app/Helpers/SessionHelper.php
<?php
namespace App\Helpers;
헬퍼를 사용하는 곳도 수정합니다.
app/Controllers/Post.php
use App\Helpers\LoginHelper;
로컬에서 단위 테스트가 통과하는지 확인합니다.
php phpunit.phar --testdox --verbose tests/controller/PostTests.php
한번 더 배포해 보겠습니다.
우선 로컬에서 git 서버로 푸시합니다.
git add .
git commit -m "[Helpers 네임스페이스 오류 수정]"
git push origin main
서버에 접속 후 git에서 소스코드를 pull
합니다.
cd /home/bitnami/markdown-blog/ci4
git pull
잘 내려받아졌습니다.
Fast-forward
src/sample/app/Controllers/Post.php | 2 +-
src/sample/app/Helpers/LoginHelper.php | 2 +-
src/sample/app/Helpers/SessionGlobalHelper.php | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
git에서 내려받은 프로젝트 파일을 /home/bitnami/htdocs/markdown-blog
로 복사합니다.
소스코드
cp /home/bitnami/markdown-blog/ci4/src/sample/app/Controllers/Post.php /opt/bitnami/apache2/htdocs/markdown-blog/app/Controllers/Post.php
cp /home/bitnami/markdown-blog/ci4/src/sample/app/Helpers/LoginHelper.php /opt/bitnami/apache2/htdocs/markdown-blog/app/Helpers/LoginHelper.php
cp /home/bitnami/markdown-blog/ci4/src/sample/app/Helpers/SessionGlobalHelper.php /opt/bitnami/apache2/htdocs/markdown-blog/app/Helpers/SessionGlobalHelper.php
잘 보이는지 최종적으로 확인합니다.
궁금한게 있습니다
routes−>get(′/′,′Home::index′);routes->add('/test','Hm::index');
이렇게 설정 후 /test 로 접속하게되면 /public/test/index.php가 동작하는데 어떻게 해결해야되나요?