yii 프레임 워크의 특수 모듈도 CodeCeption 내에 존재합니다. TestGuy 클래스에 몇 가지 방법을 추가하여 기능 테스트 중에 활성 레코드 (YII의 ORM)를 사용하는 데 도움이됩니다. 예를 들어, 등록 양식이 사용자 이름 "TestUser"로 새 사용자를 성공적으로 생성했는지 확인하려면 다음을 수행 할 수 있습니다.
<span>namespace app<span>\components</span>;
</span>
<span>class View extends yii<span>\web\View</span> {
</span>
<span>public $bodyId;
</span>
<span>/* Yii allows you to add magic getter methods by prefacing method names with "get" */
</span>
<span>public function getBodyIdAttribute() {
</span> <span>return ($this->bodyId != '') ? '' : '';
</span> <span>}
</span>
<span>}</span>
5. 보안을 단순화합니다
보안은 모든 웹 응용 프로그램의 중요한 부분이며 다행히도 YII는 마음을 편안하게하는 데 도움이되는 훌륭한 기능을 가지고 있습니다.
yii에는보다 안전한 애플리케이션을 만드는 데 도움이되는 몇 가지 방법을 노출시키는 보안 애플리케이션 구성 요소가 제공됩니다. 더 유용한 방법 중 일부는 다음과 같습니다.
generatepasswordhash : 암호와 임의의 소금에서 안전한 해시를 생성합니다. 이 방법은 당신을 위해 임의의 소금을 만들고 PHP의 crypt 함수를 사용하여 제공된 문자열에서 해시를 만듭니다.
passpassword validatepassword : 이것은 geneatepasswordhash의 동반자 함수이며, 사용자가 제공 한 암호가 저장된 해시와 일치하는지 확인할 수 있습니다.
GeneraterAndomkey : 모든 길이의 임의의 문자열을 만들 수 있습니다 -
yii는 모든 안전하지 않은 HTTP 요청 방법 (PUT, POST, DELETE)에서 유효한 CSRF 토큰을 자동으로 점검하고 ActiveForm :: Begin () 메소드를 사용하여 오프닝 양식 태그를 생성 할 때 토큰을 생성하고 출력합니다. 이 기능은 다음을 포함하도록 기본 구성 파일을 편집하여 비활성화 할 수 있습니다.
-
XSS로부터 보호하기 위해 YII는 htmlpurifier라는 다른 도우미 클래스를 제공합니다. 이 클래스는 프로세스라는 단일 정적 메소드가 있으며 동일한 이름의 인기있는 필터 라이브러리를 사용하여 출력을 필터링합니다.
YII에는 사용자 인증 및 승인을위한 즉시 사용 가능한 클래스도 포함되어 있습니다. 승인은 ACF (액세스 제어 필터)와 RBAC (역할 기반 액세스 제어)의 두 가지 유형으로 나뉩니다.
둘의 간단한 것은 ACF이며 컨트롤러의 동작 방법에 다음을 추가하여 구현됩니다.
앞의 코드는 DefaultControllerto에게 게스트 사용자가 로그인에 액세스하고 조치를보기에 액세스 할 수는 없지만 조치를 만드는 것은 아닙니다. (? 익명 사용자의 별칭이며 @는 인증 된 사용자를 말합니다.
RBAC는 응용 프로그램 전체에서 특정 작업을 수행 할 수있는 사용자를 지정하는보다 강력한 방법입니다. 여기에는 사용자의 역할을 작성하고 앱에 대한 권한을 정의한 다음 의도 한 역할에 대한 권한을 활성화해야합니다. 중재자 역할을 만들려면이 메소드를 사용할 수 있으며이 역할에 할당 된 모든 사용자가 기사를 승인 할 수 있습니다. -
특정 조건에서 응용 프로그램의 특정 측면에 대한 액세스 권한을 부여 할 수있는 RBAC를 사용하여 규칙을 정의 할 수도 있습니다. 예를 들어, 사용자가 자신의 기사를 편집 할 수는 있지만 다른 기사가 작성한 규칙을 만들 수있는 규칙을 만들 수 있습니다.
6. 개발 시간을 단축시킵니다
대부분의 프로젝트에는 시간을 낭비하고 싶지 않은 일정량의 반복적 인 작업이 포함됩니다. Yii는 해당 작업에 더 적은 시간을 보내는 데 도움이되는 몇 가지 도구를 제공하며 고객의 요구에 맞게 응용 프로그램을 사용자 정의하는 데 더 많은 시간을 보내십시오.
이 도구 중 가장 강력한 도구 중 하나를 "GII"라고합니다. GII는 웹 기반 코드 스캐 폴딩 도구로 다음을위한 코드 템플릿을 신속하게 만들 수 있습니다.
모델
컨트롤러
<span>use yii<span>\helpers\Html</span>;</span>
형태
모듈
확장
CRUD 컨트롤러 동작 및 뷰
gii는 매우 구성 가능합니다. 특정 환경에서만로드하도록 설정할 수 있습니다. 다음과 같이 웹 구성 파일을 편집하기 만하면됩니다<span>use yii<span>\helpers\Html</span>;</span>
이렇게하면 yii 환경 변수가 development 로 설정된 경우에만 GII가로드되고 LocalHost를 통해 액세스 할 때만로드됩니다.
이제 모델 생성기를 살펴 보겠습니다 :
테이블 이름은 Typeahead 위젯을 사용하여 모델이 어떤 테이블과 관련되어 있는지 추측하고 모든 필드에는 롤오버 도구 팁이있어 어떻게 작성하는지 상기시킵니다. GII를 생성하도록 요청하기 전에 코드를 미리 볼 수 있으며 모든 코드 템플릿은 완전히 사용자 정의 할 수 있습니다.
또한 데이터베이스 마이그레이션, 메시지 변환 (I18N) 및 자동 테스트 용 데이터베이스 고정 장치를 만드는 데 도움이되는 몇 가지 명령 줄 도구가 있습니다. 예를 들어이 명령으로 새 데이터베이스 마이그레이션 파일을 만들 수 있습니다.
이것은 {appdir}/마이그레이션에서 다음과 같이 보이는 새로운 마이그레이션 템플릿을 만듭니다.
그래서이 테이블에 몇 개의 열을 추가하고 싶다고 가정 해 봅시다. 나는 단순히 UP 메소드에 다음을 추가 할 것입니다 :
그런 다음 마이그레이션을 뒤집을 수 있는지 확인하려면 다운 메소드를 편집 할 것입니다.
테이블 생성은 단순히 명령 줄에서 명령을 실행하는 것만으로도 포함됩니다.
테이블을 제거하려면 :
<span>public static $aliases = ['@yii' => __DIR__];</span>
7. 더 나은 성능을 위해 조정하기 쉬운
모두가 느린 웹 사이트가 불만을 품은 사용자를 만듭니다. 따라서 YII는 응용 프로그램에서 더 빠른 속도를 짜는 데 도움이되는 몇 가지 도구를 제공합니다.
모든 YII의 캐시 구성 요소는 YII/캐싱/캐시에서 확장되므로 공통 API를 사용하는 동안 원하는 캐싱 시스템을 선택할 수 있습니다. 여러 캐시 구성 요소를 동시에 등록 할 수도 있습니다. YII는 현재 APC, Memcache, Redis, Wincache, Xcache 및 Zend Data Cache뿐만 아니라 데이터베이스 및 파일 시스템 캐싱을 지원합니다.
기본적으로 활성 레코드를 사용하는 경우 YII는 추가 쿼리를 실행하여 모델 생성과 관련된 테이블 스키마를 결정합니다. 다음과 같이 기본 구성 파일을 편집하여 이러한 스키마를 캐시하도록 응용 프로그램을 설정할 수 있습니다.
마지막으로, YII는 프론트 엔드 자산의 조정을 용이하게하기위한 명령 줄 도구를 가지고 있습니다. 구성 템플릿을 생성하려면 다음 명령을 실행하기 만하면됩니다.
<span>namespace app<span>\components</span>;
</span>
<span>class View extends yii<span>\web\View</span> {
</span>
<span>public $bodyId;
</span>
<span>/* Yii allows you to add magic getter methods by prefacing method names with "get" */
</span>
<span>public function getBodyIdAttribute() {
</span> <span>return ($this->bodyId != '') ? '' : '';
</span> <span>}
</span>
<span>}</span>
그런 다음 구성을 편집하여 최소화를 수행하려는 도구 (예 : Closure Compiler, Yui Compressor 또는 UglifyJS)를 지정하십시오. 생성 된 구성 템플릿은 다음과 같습니다
다음으로 압축을 수행하려면이 콘솔 명령을 실행하십시오.
<span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>
및 마지막으로, 컴프레스 된 자산을 사용하려면 웹 애플리케이션 구성 파일을 편집하십시오.
참고 :
이 외부 도구를 수동으로 다운로드하여 설치해야합니다. 결론
좋은 프레임 워크와 마찬가지로 Yii는 최신 웹 애플리케이션을 신속하게 만들고 성능이 잘 작동하도록 도와줍니다. 그것은 당신이 당신을 위해 많은 리프팅을함으로써 안전하고 테스트 가능한 사이트를 만들도록 강요합니다. 제공되는대로 대부분의 기능을 쉽게 쉽게 사용할 수 있거나 필요에 맞게 각 기능을 수정할 수 있습니다. 다음 웹 프로젝트를 확인하는 것이 정말 좋습니다!
yii 2를 사용해 보셨습니까? 당신은? 알려주세요!
yii 2 프레임 워크에 대한 자주 묻는 질문 (FAQ)
왜 yii 2 프레임 워크가 확장 가능한 것으로 간주 되는가? yii 2 프레임 워크는 개발자가 코어 코드의 거의 모든 부분을 사용자 정의 할 수 있기 때문에 확장 가능한 것으로 간주됩니다. 즉, 개발자가 프레임 워크가 특정 작업을 처리하는 방식을 조정 해야하는 경우 핵심 코드를 직접 수정하지 않고도 그렇게 할 수 있습니다. 이것은 높은 수준의 유연성과 적응성을 허용하므로 특정 프로젝트 요구 사항을 충족시키기 위해 프레임 워크를 더 쉽게 조정할 수있게 해주므로 중요한 이점이 있습니다.
YII 2 프레임 워크는 어떻게 고성능을 보장합니까?
YII 2 프레임 워크는 효율적인 게으른 하중 기술을 통해 고성능을 보장합니다. 이는 특정 프로세스에 필요한 구성 요소 만로드하여 서버의 부하를 줄이고 응용 프로그램의 전반적인 성능을 향상시킵니다. 또한 YII 2는 데이터 캐싱을 지원하여 성능을 향상시킵니다. YII 2 프레임 워크가 웹 개발을위한 안전한 선택으로 만드는 이유 yii 2 프레임 워크는 핵심에 강력한 보안 기능이 있습니다. . 입력 유효성 검사, 출력 필터링, SQL 주입 방지 및 XSS (Cross-Site Scripting) 예방을위한 내장 도구를 제공합니다. 이러한 기능은 민감한 데이터를 처리 해야하는 웹 애플리케이션을 개발하기위한 안전한 선택입니다.
YII 2 프레임 워크는 어떻게 빠른 개발을 지원 하는가?
2 프레임 워크는 강력한 코드 생성을 통해 빠른 개발을 지원합니다. 도구, GII. GII를 통해 개발자는 모델, 컨트롤러, 양식, 모듈 및 확장에 대한 코드를 신속하게 생성 할 수 있습니다. 이것은 보일러 플레이트 코드를 작성하는 데 필요한 시간을 크게 줄여 개발자가 비즈니스 로직에 더 집중할 수있게합니다. yii 2 프레임 워크와 함께 타사 코드를 사용할 수 있습니까? 타사 코드로 원활하게 작동하도록 설계되었습니다. Composer Dependency Manager를 사용하여 타사 라이브러리와 패키지를 YII 2 응용 프로그램에 쉽게 통합 할 수 있습니다.
YII 2 프레임 워크는 오류 및 예외를 어떻게 처리합니까?
yii 2 프레임 워크 포괄적 인 오류 처리 및 로깅 시스템이 있습니다. PHP 오류와 예외를 모두 처리 할 수 있으며 파일, 이메일 및 브라우저 콘솔을 포함한 다양한 로깅 대상을 제공합니다. 이로 인해 응용 프로그램에서 문제를 디버그하고 수정하는 것이 더 쉽습니다. 는 복잡한 웹 애플리케이션을 개발하는 데 적합한 yii 2 프레임 워크입니까?
예, YII 2 프레임 워크는 복잡한 웹 애플리케이션을 개발하는 데 적합합니다. MVC 아키텍처, 데이터베이스 추상화 계층 및 캐싱 지원과 같은 다양한 도구 및 기능을 제공하여 복잡한 응용 프로그램을 더 쉽게 구축하고 유지할 수 있습니다.
YII 2 프레임 워크는 어떻게 국제화를 지원합니까? yii 2 프레임 워크는 국제화에 대한 광범위한 지원을 제공합니다 (i18n). 날짜 및 시간 형식의 기능, 번호 형식 및 메시지 변환 기능이 포함되어있어 전세계 잠재 고객을위한 응용 프로그램을보다 쉽게 개발할 수 있습니다.
yii 2 프레임 워크에 어떤 종류의 커뮤니티 지원이 제공됩니까?
YII 2 프레임 워크에는 크고 활발한 개발자 커뮤니티가 있습니다. 도움과 조언을 찾을 수있는 수많은 포럼, 블로그 및 튜토리얼이 온라인으로 제공됩니다. 또한 공식 YII 웹 사이트는 포괄적 인 문서와 사용자 안내서를 제공합니다.
YII 2 프레임 워크는 다른 PHP 프레임 워크와 어떻게 비교됩니까? yii 2 프레임 워크는 높은 PHP 프레임 워크에서 높아집니다. 성능, 보안 기능 및 확장 성. 또한 빠른 개발을 지원하므로 소규모 및 대규모 프로젝트 모두에 인기있는 선택이됩니다. 그러나 프로젝트에 가장 적합한 프레임 워크는 개발 팀의 특정 요구 사항과 전문 지식에 따라 다릅니다.