Thinkphp 버전 업그레이드 관련 소개, 5.0에서 5.1로의 업그레이드를 예로 들면:
먼저 5.0의 일반 디렉토리 구조를 살펴보세요:
project 应用部署目录 ├—application 应用目录(可设置) ├—extend 扩展类库目录(可定义) ├—public WEB 部署目录(对外访问目录) ├—runtime 应用的运行时目录(可写,可设置) ├—vendor 第三方类库目录(Composer) ├—thinkphp 框架系统目录
그런 다음 5.1의 일반 디렉토리 구조를 살펴보세요:
www WEB部署目录(或者子目录) ├—application 应用目录 ├—config 应用配置目录 ├—route 路由定义目录 ├—public WEB目录(对外访问目录) ├—thinkphp 框架系统目录 ├—extend 扩展类库目录 ├—runtime 应用的运行时目录(可写,可定制) project 应用部署目录 ├—application 应用目录(可设置) ├—extend 扩展类库目录(可定义) ├—public WEB 部署目录(对外访问目录) ├—runtime 应用的运行时目录(可写,可设置) ├—vendor 第三方类库目录(Composer) ├—thinkphp 框架系统目录 ├—vendor 第三方类库目录(Composer依赖库)
첫 번째 전달 레이어 디렉터리에서 5.1에는 더 많은 구성 및 경로 디렉터리만 있음을 알 수 있습니다. 이는 버전 5.1이 구성 파일과 라우터 파일을 추출했음을 나타냅니다.
아래에서는 wstmart 오픈소스 몰 시스템을 예로 들어 업그레이드를 시도합니다.
먼저 git을 통해 최신 thinkphp5.1 프레임워크를 내보냅니다.
실행하여 결과를 확인합니다.
오픈 소스 몰 wstmart 코드를 가져옵니다.
관련 추천: "ThinkPHP Tutorial"
wstmart 오픈소스 몰의 wstmart 디렉토리에 있는 wstmart를 tp5 디렉토리로 자르고, index.php 파일을 수정하고, 시스템 루트 디렉토리에서 프로젝트가 직접 실행되도록 하고, 그런 다음 수정하세요. 데이터베이스 구성 파일을 확인하고 디버깅 기능을 켜고 실행하세요.
어? ! ! 문제가 발생했나요? 문서를 빠르게 살펴보세요. 문서를 아래로 스크롤하여 살펴보세요. 응? 괜찮은. 너무 조급해서 다 읽지 못한 것으로 드러났습니다. 항목 파일을 다시 정의하면 원래 공용 디렉토리를 가리키는 index.php 파일을 사용할 수 없습니다. 예를 들어 애플리케이션 디렉토리도 정의해야 합니다. : Container::get( 'app')->path(APP_PATH)->run()->send(); 여기서 APP_PATH는 정의할 애플리케이션의 디렉터리입니다.
Container::get('app')->path(__DIR__ . '/wstmart/')->run()->send();
실행하여 확인하세요:
드디어 정상이 되었습니다. 이 결과가 나온 이유는 구성 파일을 수정하지 않고 시스템에 기본 모듈이 home이라고 알려주었기 때문입니다. 그런 다음 app.php 파일에서 'default_module' => 'home'을 수정하고 실행하여 다음을 확인했습니다.
$rs = Db::name('goods_cats')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids],'isFloor'=>1]) ->field("parentId,catName,catId")->order('catSort asc')->select();문제가 있습니다. 문서를 다시 살펴보겠습니다. 문서에 따르면 쿼리 생성자의 배열 다중 필드 일괄 쿼리가 변경되었습니다. 원본
where(['name'=>['like','think%'], 'id'=>['>',0],])를
where([['name','like','think%'], ['id','>',0],])로 조정해야 합니다. 위의 지침에 따라 코드를
$rs = Db::name('goods_cats')->where([['dataFlag','=',1], ['isShow','=',1],['parentId','in',$ids],['isFloor','=',1]]) ->field("parentId,catName,catId")->order('catSort asc')->select();로 수정했습니다. 충분하면 이 오류가 더 이상 나타나지 않습니다. 다음은 또 다른 질문입니다.
시스템이 이 시점까지 실행될 수 있습니다. 이는 프로그램이 성공적으로 정보를 수신하고 반환할 수 있다는 의미입니다. 페이지의 오류는 사용자 정의 태그 wst:ads의 오류여야 하며 이로 인해 콘텐츠가 반환되지 않습니다. 위의 문제 해결 방법을 따르고 계속해서 디버그로 돌아갔습니다. 업그레이드 중에 레이블을 구성하는 것을 잊어버린 것으로 나타났습니다. 템플릿을 열고 'taglib_pre_load' => 'wstmartcommonTaglibWst' 코드를 추가한 다음 페이지를 새로 고칩니다.
또 다른 익숙한 오류이지만 이번에는 다른 기능을 통해 해결 방법을 찾았습니다. 쉽습니다. 해결해야 하므로 다시는 반복하지 않겠습니다. 기본적으로 모델의 쿼리 기능을 수정하면 됩니다. 이전 방법에 따라 변경한 후 Thinkphp 5.0에서 5.1로 업그레이드를 완료할 수 있습니다.
공간이 제한되어 있기 때문에 디버깅을 위해 스크린샷을 하나씩 찍지는 않겠습니다. 업그레이드하기 전에 모두가 thinkphp의 공식 업그레이드 가이드를 읽어서 저처럼 업그레이드를 완료하기 전에 한 군데씩 채우는 일이 없도록 하세요.
위 내용은 thinkphp를 업그레이드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!