> 백엔드 개발 > PHP 튜토리얼 > YII 2.0에서 기대할 사항

YII 2.0에서 기대할 사항

Jennifer Aniston
풀어 주다: 2025-02-19 13:02:10
원래의
641명이 탐색했습니다.

YII 2.0에서 기대할 사항 yii 2.0은 지난 4 월 베타에 릴리스되었고 2014 년 중반에 첫 번째 안정적인 릴리스 목표가 설정되었습니다. Github 문제 목록에는 300 개의 공개 문제가 있고 2913이 마감되어 있습니다. . 2.0RC 이정표로의 진행은 99%였습니다. 내 생각에 팀이 가까워졌지만 조금 더 오래 기다려야 할 것입니다. 우리 모두가 기다리는 동안 이미 사용 가능한 예를 살펴보면서 기대할 수있는 것을 살펴 보겠습니다. 키 테이크 아웃

YII 2.0은 네임 스페이스, 특성 및 작곡가 통합 사용을 포함하여 상당한 개선 및 변경 사항을 도입하여 최신 PHP 프레임 워크 기능을 향상시킵니다. 프레임 워크는 Blueprint CSS 프레임 워크에서 Twitter Bootstrap으로 바뀌 었습니다.이 프레임은 미학을 변화시킬뿐만 아니라 빠른 응용 프로그램 개발을위한 광범위한 UI 구성 요소를 제공합니다. YII 2.0의 오류 처리는 모든 오류를 예외로 변환하여보다 유익한 출력을 제공하고 디버깅 프로세스를 개선하도록 정비되었습니다. YII의 코드 생성 도구 인 gii는 YII 2.0에서 필수적으로 남아 있으며, 현재 CRUD 운영 및 국제화를위한 더 나은 코드 생성을 지원합니다. YII 2.0은 PHP 5.4 이상이 필요하며 고급 PHP 기능을 활용하여 이전 서버 환경과의 호환성에 영향을 줄 수 있지만 궁극적으로보다 강력하고 안전한 프레임 워크를 제공합니다.

작은 역사 YII의 첫 번째 버전은 2008 년에 출시 된 후 매우 빨리 인기를 얻었습니다. Qiang Xue는 이전에 Prado Framework에서 작업했으며 YII를 구축하기 위해 경험과 피드백을 사용했습니다. yii는 다른 프레임 워크, 언어 및 라이브러리에서 많은 아이디어를 사용합니다. Prado, Ruby, JQuery, Symfony 및 Joomla는 모두 영감의 원천으로 인정됩니다. 첫 번째로 YII 2.0의 커밋은 2011 년으로 거슬러 올라가지 만 작년에 개발이 시작되었습니다. 이 팀은 최첨단 새로운 세대 PHP 프레임 워크가되기위한 목표로 다시 작성했습니다. 작곡가, PSR, 네임 스페이스, 특성 등과 같은 최신 기술 및 기능을 채택합니다. 언급할만한 가치는 다운로드 페이지에 따르면 YII 버전 1.1 지원은 2015 년 12 월 31 일에 끝날 것이므로 전환에 대한 생각을 시작할 시간이 있습니다.

요구 사항 네임 스페이스와 특성의 사용은 요구 사항을 PHP 5.4로 향상시켰다. 또한 개발을 시작할 때는 MB_String, PDO 및 Intl 확장자가 필요합니다. 자신의 서버를 실행하는 경우 문제가되지 않지만 공유 환경에있을 수 있습니다. 물론, 시간이 지나면 그 문제는 사라질 것입니다.

설치 yii는 이제 Composer에서 설치할 수 있습니다. 곧이 설치 방법을 살펴 보겠습니다 현재 두 가지 응용 프로그램 예제가 있습니다. 몇 페이지, 연락처 페이지 및 로그인 페이지가 포함 된 기본 예제가 있습니다. 고급 예제는 별도의 프론트 및 백엔드, 데이터베이스 상호 작용, 가입 및 비밀번호 복구를 추가합니다.

시작하기

기본 예에서 시작하겠습니다. 이전에 YII를 보았을 때 YII 1.1과 함께 제공되는 것과 동일한 기본

webApp 를 인식하게됩니다. 다음 명령을 사용하여 작곡가로 기본 예제를 설치하십시오.

그런 다음 http : //localhost/yii2-app-basic/requirements.php를 열어 서버가 요구 사항을 충족하는지 확인할 수 있습니다. 그런 다음 실제 응용 프로그램은 http : // localhost/yii2-app-basic/web/에서 실행됩니다.

이것은 주목해야 할 첫 번째 중요한 것입니다. 아이디어는 응용 프로그램의 문서 루트를 Symfony와 마찬가지로/path/to/application/web로 설정한다는 것입니다. 디렉토리 레이아웃은 버전 1.1에서 약간 변경되었습니다. 자세히 살펴보면 변경 사항이 의미가 있으며 응용 프로그램의 보안이 향상됩니다. 이전에는 모든 응용 프로그램 구성 요소 (모델, 뷰, 컨트롤러, 프레임 워크 및 공급 업체 라이브러리)가 보호 폴더의 문서 루트 아래에 남아 있습니다. 이렇게하면 보안이 존중 될 .htaccess 파일에 의존하여 Nginx에서 기본적으로 응용 프로그램이 100% 불안했습니다. 모든 애플리케이션 구성 요소를 문서 루트에서 멀리 이동하면 웹 서버가 응용 프로그램 구성 요소를 사용자에게 전송하는 것을 방지합니다. 실제 프레임 워크 소스를 찾고있을 수 있습니다. 프레임 워크는 작곡가를 사용하여 설치된 구성 요소이므로 vendoryiisoftyii 디렉토리에 따라 상주합니다. 여기에는 더 많은 것을 찾을 수 있지만 지금은 그냥 남겨 두겠습니다. 현재로서는 로컬 웹 서버 구성을 변경하고 문서 루트를/path/to/application/web로 설정하겠습니다. virtualhost http : //yii2-app-basic.localhost/를 추가했지만 자신의 상황에 적합한대로 수행합니다. 기본 구성은 URL에서 스크립트 파일을 숨기도록 설정되었습니다. Apache를 사용하는 경우 Apache에게 다시 작성하도록 지시하기 위해 .htaccess 파일을 웹 디렉토리에 추가해야합니다.

a 기본 YII 응용 프로그램 composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic를 살펴보십시오 이제 우리는 기본 응용 프로그램이 실행되었으므로 일부 축하가 순서대로 진행됩니다…

감사합니다! 지금까지 로켓 과학이 없습니다.

시작 페이지, 정적 페이지, 연락처 페이지 및 로그인 페이지로 시작합니다. 연락처 페이지 및 로그인 양식에는 이전과 동일한 기능이 있습니다. CARTCHA 코드, 양식 검증 및 로그인에 사용할 수있는 두 사용자. 로그인은 이전과 동일합니다. 아무것도 가깝습니다. 그래도 좋은 출발입니다.

기본 응용 프로그램의 디자인은 극적으로 변경되었습니다. 이전에는 Blueprint CSS 프레임 워크에 대한 응용 프로그램을 구축했지만 이제는 Twitter Bootstrap으로 시작합니다. 개선? 아마도 Blueprint와 비교 될 것입니다. 그러나 Bootstrap은 Blueprint가 시도한 것보다 훨씬 더 많습니다.

Bootstrap은 모든 종류의 응용 프로그램 구성 요소를 제공하고 응용 프로그램 구축 속도를 높입니다. 다른 한편으로는 모든 사이트가 부트 스트랩과 동일하게 보이고 (테마는 부분적으로 만 수정) 사이트를 더 큰 크기로 만들 것이라고 주장 할 수도 있습니다. 어느 쪽이든, YII 2.0과의 통합은 YII2- 부트 스트랩 확장으로 수행됩니다. 이렇게하면 뷰에서 부트 스트랩 구성 요소를 쉽게 통합 할 수 있습니다. 또 다른 것은 바닥의 디버그 막대입니다. Symfony와 마찬가지로 기본적으로 설치 및 활성화됩니다. 구성, 요청 및 애플리케이션 로깅에 대한 많은 정보에 빠르게 액세스 할 수 있습니다. 디버그 정보가 포함 된 요청 이력을 유지합니다.

yii는 일반적으로 PHP와 다른 오류를 처리합니다. YII는 모든 오류 (치명적 및 비 치명적)를 예외로 변환합니다. 그것들은 당신이 엉망이 된 지점을 향한 통찰력있는 출력을 렌더링하여 처리됩니다. YII 1.1이 기본 PHP 오류로 돌아가는 오류조차도 코드의 개요를 잘 렌더링합니다. 이것은 우리 대부분이 감사 할 것입니다.

YII 2.0에서 기대할 사항 gii도 다시 존재하고 기본적으로 활성화됩니다

gii는 개발 속도를 높이는 데 도움이되는 또 다른 훌륭한 도구 인 코드를 시작할 수있는 코드를 생성함으로써 도움이 될 것입니다. 그것은 당신을 위해 모델과 컨트롤러를 생성합니다. CRUD 생성기는 한 걸음 더 나아가 모든 작업에 대한 완전한 MVC 세트를 생성합니다. GII는 또한 필요한 위치에 YII :: T () 함수를 즉시 삽입하여 국제화에 더 적합한 코드를 생성합니다. 기본 응용 프로그램에는 이제 구축 할 수있는 간단한 명령 줄 응용 프로그램도 제공됩니다. Yii 1.1은 이미 이것을 지원했지만 위키에서 예제를 얻어야합니다.

그것이 기본 응용 프로그램에서 찾을 수있는 것입니다. 또한 advanced 응용 프로그램 예제도 있습니다. 구조가 다소 다르지만 상자 밖으로 응용 프로그램에 더 많은 기능을 추가합니다.

사용자 인증, 인증 및 비밀번호 복원 응용 프로그램은 전면 및 백엔드로 분리됩니다. YII 2.0에서 기대할 사항 기본 버전을 계속 살펴보면 자세히 살펴보고 코드를 다이빙해 봅시다… 무엇이 바뀌 었습니까? 많은 것이 바뀌 었습니다. 일부 변경 사항은 처음에는 혼란 스러울 수 있지만 대부분의 변경 사항은 의미가 있고 수용하기 쉽습니다. 다음은 흥미롭고 재미 있거나 당황한 변화가 있습니다.

PHP 5.4 요구 사항은 일부 변경을 가능하게했다. 배열 짧은 태그를 사용할 수 있습니다. 더 이상 구성 설정에 의존하지 않기 때문에 Echo Short 태그를보기에서도 안전합니다.

작은 변화이지만, 당신은 빠르게 달려갑니다. 전에는 yii :: app ()를 사용하여 응용 프로그램 인스턴스에 액세스하고 구성 요소에 액세스합니다. Yii 2.0에서 이것은 정적 함수에서 정적 변수 yii :: $ app로 변경되었습니다. 번역 함수 yii :: t ()는 여전히 우리와 함께 있습니다. YII는 I18N 구성 요소를 사용하여 제공된 텍스트를 현재 사용 된 현재 언어로 변환하도록 지시합니다. 변수를 대체하도록 지시 할 수도 있습니다

자리 표시 자 형식 및 스타일링이 심각하게 재 작업되어 더 많은 서식 옵션이 허용됩니다. 몇 가지 예 :

이 자리 표시 자 형식으로 인해 DateTimeFormatter가 사라졌습니다

이 기능은 ICU 라이브러리에서 제공합니다. YII 문서는 이것에 대한 원본 문서를 호출합니다. 나는 당신이 그것을 읽고 그것을 이해하려고 노력합니다… YII 문서에 더 읽기 쉬운 버전이 포함되기를 바랍니다.

컨트롤러 이전에는 accessControl ()이 YII Access 컨트롤 기능을 사용하려면 컨트롤러의 기능입니다. yii 2.0의 경우 액세스 제어는 컨트롤러 동작의 일부입니다 () :
composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
로그인 후 복사
로그인 후 복사
이것은 YII 1.1의 방식과 거의 동일합니다. 나는 예제 코드 (프레임 워크 자체가 아님)에 많은 docblocks가없고 @inheritdoc 댓글이 많다는 것을 알았습니다. 이것은 예에서 기대할 수있는 것이 아니지만 시간이 지남에 따라 고정 될 것이라고 가정합니다.

.

모델 기본 모델 (이전 CModel)은 크게 변하지 않았습니다. 시나리오를 사용하면 검증 규칙의 시행을 변경할 수 있습니다. 현재 시나리오 (즉, 전면 또는 백엔드에서 사용될 때 다른 규칙을 가진 모델)에 따라 검증해야 할 사항을 변경할 수 있습니다. 파생 된 Activerecord는 심각한 변화를 겪었습니다. ActivereCord를 검색하기위한 구문은 CDBCriceria가 사라 졌기 때문에 쿼리를 쓰는 것과 비슷해졌습니다. 정보 검색을 더 쉽게하는 ActiveQuery로 대체되었습니다.

관계 정의도 극적으로 변경되었습니다. 예를 들어 사용자가 댓글을 달린 기사를 게시하는 블로거가있는 사이트를 예로 들어 보겠습니다. 저자 표에 대한 관계 정의는 다음과 같습니다. YII 1.1 : 에서 어떻게 보이는지 시작하겠습니다

composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
로그인 후 복사
로그인 후 복사
보시다시피, 활성 레코드의 모든 관계를 큰 배열에서 정의합니다. YII 2.0에서는 모든 관계에 대해 활성 쿼리 객체를 반환하는 getter 메소드를 정의해야합니다. 중개자 테이블 사이의 관계를 정의하기 위해‘Through’키워드를 사용해야합니다.

이제이를 정의 할 수있는 두 가지 옵션이 있습니다. 일반적으로 관계 함수에서 VIA () 메소드를 사용합니다. 피벗 테이블 다음 테이블에 데이터 만 필요한 경우 viatable () 메소드를 사용하여 관계를 정의 할 수도 있습니다. 위와 동일한 예이지만 현재 YII 2.0 : 의 경우

이것은 다소 간단한 예입니다. ActiveQuery 객체를 반환하는 Getter 기능을 통해 관계를 정의하면 훨씬 더 많은 것이 가능합니다. 예를 들어, 반환 된 ActiveQuery에서 () 호출을 추가하여> 50 개의 댓글을 얻는 게시물에 대한 쿼리를 수행하는 특정 함수를 추가 할 수 있습니다. 흥미로운 추가는 교차 DBMS 관계를 정의 할 수 있다는 것입니다. 예를 들어 MySQL과 MongoDB 또는 Redis 간의 관계를 정의하고 응용 프로그램에서 하나의 객체로 사용할 수 있습니다.

뷰에서 주목해야 할 것은 $ $는 더 이상 컨트롤러 인스턴스를 참조하지 않는다는 것입니다. 보기에서 $ $는 yiiwebview 객체의 인스턴스입니다. 컨트롤러는 $ this-> 컨텍스트를 통해 액세스 할 수 있습니다.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
로그인 후 복사
내가 전에 말했듯이; PHP 5.4는 짧은 에코 태그를 일관되게 사용할 수있게합니다. 이것은 혼합 PHP와 HTML로 구성된 견해를 더 읽을 수있게합니다.

render () 및 RenderPartial () 함수도 변경되었습니다. 렌더링 된 출력을 자동으로 반영하기 전에 렌더링 된 출력을 문자열로 가져 오려면 추가 매개 변수를 추가해야합니다. Yii 2.0은 항상 render ()에서 문자열을 반환합니다. 통화는 위젯이 작동하는 방식과 더 일치하는 전화와 마찬가지로. yii 1.1 에서 업그레이드 yii 1.1 신청서를 YII 2.0으로 업그레이드하는 것을 고려해야합니까? Bruno Škvorc는 최근 Sitepoint에서 레거시 코드에 대해 썼습니다. 그는 2 개월 안에 수행 할 수있는 재 작성을 고려해야한다고 주장합니다. 나는 그에게 동의하고 당신이 당신의 응용 프로그램에 대해 진지하게 느끼고 YII 1.1의 수명이 끝날 때까지 유지하고 싶다면 그것을 고려할 것을 제안 할 것입니다. 그러나 항상 그렇듯이; 그것은 당신의 상황에 달려 있습니다.

YII 웹 사이트에서 YII를 업그레이드하는 데 전용되는 특별 페이지가 있습니다. 현재 가장 큰 문제는 확장입니다. 많은 확장에 의존한다면 커뮤니티가 YII 2.0의 확장을 작성하는 데 시간이 걸리기 때문에 어려움을 겪게됩니다. 당신이 진짜 프로라면, 당신은 당신이 사용하고있는 확장을 진지하게 살펴보고 그것을 고려할 수 있습니다. 마이그레이션 매뉴얼에는 응용 프로그램에서 Yii 1.1 및 Yii 2.0을 함께 실행하는 섹션이 있습니다. 대규모 프로젝트의 경우 이것은 안전한 마이그레이션 경로를 만드는 좋은 방법입니다. 일반 코드를 YII 2.0으로 마이그레이션하고 더 복잡하거나 확장 된 부품에서 시간을 내십시오.

결론 YII 2.0에 대한 결정적인 가이드를 넘어서는 것은 YII 2.0을 시작하기 위해 점점 더 열정적으로 얻을 수 있습니다. 사전 제작 코드에 문제가 발생할 수 없었기 때문에 이미 새 프로젝트에서 사용하는 것을 막아야했습니다.

YII 2.0의 문서 품질은 YII 1.1에서 개선되었습니다. 몇 년 전에 YII 1.1을 시작했을 때 물건을 알아내는 데 어려움을 겪었고 문서가 이전보다 더 광범위하다고 생각합니다. 이미 YII 2.0을 보았습니까? 당신이 무엇을 발견했는지 알려주세요. 나는 당신의 경험을 알고 싶습니다!

yii 2.0 에 대한 질문이 자주 묻습니다 이전 버전과 비교하여 YII 2.0의 새로운 기능은 무엇입니까?

yii 2.0에는 전임자보다 많은 새로운 기능과 개선이 제공됩니다. 이제 네임 스페이스 사용을 지원하여 코드 구성을 훨씬 쉽게 만듭니다. 또한보다 유연하고 강력한 새로운 라우팅 시스템도 소개합니다. ActivereCord 클래스는 NOSQL 데이터베이스를 포함한 더 많은 데이터베이스 유형을 지원하도록 재 설계되었습니다. 이 프레임 워크에는 또한 새로운 RESTFUL API 개발 지원이 포함되어있어 API를 쉽게 구축 할 수 있습니다. 또한 YII 2.0은 내장 CSRF (크로스 사이트 요청 위조) 보호를 포함하여 보안 기능이 향상되었습니다.

YII 2.0 국제화 (I18N)를 어떻게 처리 할 수 ​​있습니까? yii 2.0은 강력합니다. 국제화 (I18N) 지원. 동일한 메시지의 여러 번역을 다른 언어로 저장할 수 있습니다. 로케일에 따라 날짜, 숫자 및 통화를 포맷 할 수도 있습니다. Yii 2.0은 컨텍스트에 따라 복수형 형태 및 메시지 선택을 지원합니다.

YII 2.0 디버거는 무엇이며 어떻게 작동합니까?

yii 2.0 디버거는 디버그에 도움이되는 강력한 도구입니다. 귀하의 응용 프로그램. 실행 된 SQL 쿼리, 요청 및 응답 데이터 및 성능 타이밍 데이터를 포함하여 응용 프로그램에 대한 각 요청에 대한 정보를 수집하고 표시합니다. 응용 프로그램 페이지 하단의 패널을 통해이 정보에 액세스 할 수 있습니다.

타사 확장자로 YII 2.0을 어떻게 확장 할 수 있습니까?

yii 2.0은 타사 확장자 사용을 지원합니다. Composer 패키지 관리자를 사용하여 설치할 수 있습니다. 일단 설치되면 YII의 내장 기능과 마찬가지로 이러한 확장을 사용할 수 있습니다. YII 커뮤니티는 사용자 인증, 양식 검증 및 데이터베이스 추상화와 같은 추가 기능을 제공하는 광범위한 확장 기능을 개발했습니다. yii 2.0 데이터베이스 마이그레이션을 처리하는 방법은 무엇입니까?

yii 2.0은 데이터베이스 변경을 버전 제어 할 수있는 강력한 데이터베이스 마이그레이션 도구를 제공합니다. YII Migrate/Create 명령을 사용하여 새 마이그레이션을 만들 수 있습니다. 마이그레이션 스크립트에는 마이그레이션을 적용하고 되 돌리는 방법이 포함됩니다. 그런 다음 YII Migrate/Up 명령을 사용하여 마이그레이션을 적용 할 수 있습니다.

YII 2.0은 RESTFUL API 개발을 어떻게 지원합니까?

yii 2.0은 편안한 API를 개발하는 데 도움이되는 일련의 도구를 제공합니다. 라우팅, 요청 처리, 응답 형식 및 오류 처리에 대한 지원이 포함됩니다. ActiveController 클래스를 사용하여 API에 대한 CRUD (작성, 읽기, 업데이트, 삭제) 작업을 신속하게 생성 할 수 있습니다.

yii 2.0 양식 검증 방법은 어떻게 되나요?

YII 2.0 양식 검증 시스템. 모델 클래스에서 양식 필드에 대한 유효성 검사 규칙을 정의 할 수 있습니다. 양식이 제출되면 YII는이 규칙에 대한 입력 데이터를 자동으로 검증하고 적절한 오류 메시지를 생성합니다.

YII 2.0은 사용자 인증을 어떻게 처리합니까? yii 2.0은 유연한 사용자 인증 시스템을 제공합니다. . 전통적인 사용자 이름/비밀번호 인증과 Oauth 및 OpenID와 같은보다 현대적인 방법을 지원합니다. 또한 내장 사용자 모델을 확장하여 고유 한 인증 방법을 추가 할 수 있습니다.

YII 2.0은 오류 처리 및 로깅을 어떻게 처리합니까? yii 2.0은 강력한 오류 처리 및 로깅 시스템을 제공합니다. PHP 오류와 예외를 모두 포착하고 처리 할 수 ​​있습니다. 오류는 다른 형식으로 로그인하여 파일, 이메일 및 브라우저와 같은 다른 대상으로 보낼 수 있습니다.

YII 2.0 응용 프로그램을 어떻게 테스트 할 수 있습니까?

yii 2.0은 테스트 프레임 워크를 제공합니다. phpunit 및 셀레늄을 기반으로합니다. 단위 테스트 및 기능 테스트를 모두 지원합니다. 테스트 케이스를 작성하여 모델, 뷰 및 컨트롤러를 테스트 할 수 있습니다. 테스트 프레임 워크는 또한 사용자 입력을 시뮬레이션하고 출력을 확인하는 메소드를 제공합니다.

위 내용은 YII 2.0에서 기대할 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿