찾다
백엔드 개발PHP 튜토리얼PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World

Yii Framework 튜토리얼은 공식 중국어 문서에서 찾을 수 있는데, 이 개발 튜토리얼을 작성하는 이유는 무엇입니까? 이 튜토리얼의 목적은 Windows 데스크톱 애플리케이션 또는 ASP.NET 프로그래머가 다양한 관점(주로 C++ 및 C# 프로그래머에서 Windows 애플리케이션을 개발하는 관점을 통해)을 통해 PHPYii Framework 애플리케이션 프레임워크를 빠르게 마스터할 수 있도록 돕는 것입니다. PHP를 사용하여 웹 애플리케이션을 개발할 때 중요한 이점은 일반적으로 Windows 운영 체제에만 적용할 수 있는 Asp.Net과 달리 다양한 운영 체제(Unix, Windows, Mac OS)에 적용할 수 있다는 것입니다. PHP+Apache+MySQL(XMAP/LAMP)을 사용하면 전 세계 거의 모든 무적 플레이어를 물리칠 수 있습니다 :-).

이 튜토리얼에서 사용한 운영체제는 Windows이고, 개발 IDE는 VS.PHP입니다. 이 개발 환경을 사용하는 이유는 VS.PHP는 Visual에 익숙한 IDE로 Visual Studio를 사용하기 때문입니다. 스튜디오 개발자. 또한 C# 및 PHP 애플리케이션을 동시에 개발하고 디버깅하는 데 사용할 수 있습니다. Yii Framework 자체는 IDE와 아무런 관련이 없습니다. 선호하는 PHP 개발 도구를 사용하여 Eclipse와 같은 Yii 애플리케이션을 개발할 수 있습니다. VS.PHP에 대한 소개는 PHP 애플리케이션 개발을 위한 VS.PHP + YiiFramework 조합을 참조하세요. 본 튜토리얼에서 소개하는 Yii Framework에 대한 지식은 IDE 개발과는 아무런 관련이 없으며, 원하는 개발 환경을 선택하여 적용할 수 있습니다.

첫 번째 애플리케이션을 만들기 전에 Yii 개발 패키지를 다운로드해야 합니다. 현재 버전은 1.1.12입니다. 다운로드한 후 편의를 위해 C: 루트 디렉터리에 직접 압축을 풉니다.

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World


VS.PHP를 사용하는 또 다른 이점은 Apache 웹 서버가 함께 제공되므로 별도로 설치할 필요가 없습니다. XAMP(Apache+MySQL+PHP)도 설치할 수 있지만 MySQL을 사용해야 하는 경우에는 MySQL을 별도로 설치해야 합니다.

Yii Framework를 설치한 후 VS.PHP를 사용하여 첫 번째 PHP 애플리케이션인 Hello World를 만듭니다.

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World

VS.PHP HelloWorld 프로젝트를 생성하고 index.php 파일을 추가합니다.

이때 index.php를

<?php  
print "Hello, World!";  
  
?>
<?php  
print "Hello, World!";  
  
?>

로 수정하여 F5를 눌러 프로그램을 실행하면 VS.PHP가 브라우저를 열고 "Hello, World!"를 표시합니다. 응응응! ! ! , 우리는 Yii 웹 애플리케이션 프레임워크를 사용하지 않았습니다. Yii 프레임워크는 순수한 객체 지향 애플리케이션 프레임워크입니다. 웹 프로그램의 Application 클래스는 CWebApplication 클래스입니다. 그리고 MVC 모델을 채택합니다.

위의 구성도는 Yii 애플리케이션의 정적 구조를 보여줍니다

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World

다음 그림은 사용자 요청을 처리할 때 Yii 애플리케이션의 일반적인 워크플로를 보여줍니다

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World

사용자가 URL http://www.example.com/index.php?r=post/show&id=1에 액세스하도록 요청했으며, 웹 서버가 통과했습니다. 입력 스크립트 index.php를 실행하여 이 요청을 처리합니다.

입력 스크립트는 애플리케이션 인스턴스를 생성하고 실행합니다.

애플리케이션은 request라는 애플리케이션 구성 요소에서 사용자 요청의 세부 정보를 얻습니다.

애플리케이션은 urlManager라는 애플리케이션 구성 요소의 도움을 받아 요청된 컨트롤러와 작업을 결정합니다. 이 예에서 컨트롤러는 PostController 클래스를 나타내는 post이고, 액션은 show이며, 실제 의미는 컨트롤러에 의해 결정됩니다.

애플리케이션은 사용자 요청을 추가로 처리하기 위해 요청된 컨트롤러의 인스턴스를 생성합니다. 컨트롤러는 액션 쇼가 컨트롤러 클래스의 actionShow라는 메서드를 가리키는지 결정합니다. 그런 다음 작업(예: 액세스 제어, 벤치마킹)과 관련된 필터를 생성하고 유지 관리합니다. 필터가 허용하는 경우 작업이 실행됩니다.

이 작업은 데이터베이스에서 ID가 1인 Post 모델을 읽습니다.

이 작업은 Post 모델을 통해 show라는 뷰를 렌더링합니다.

뷰는 Post 모델의 속성을 읽고 표시합니다.

뷰는 일부 위젯을 수행합니다.

뷰의 렌더링 결과가 레이아웃에 삽입됩니다.

이 작업은 뷰 렌더링을 완료하고 사용자에게 표시합니다.

Yii 애플리케이션 자체에는 올바른 컨트롤러, 작업이 로그 파일을 사용하는지 여부 등 다양한 구성이 있습니다. Hello, World와 같은 간단한 애플리케이션의 경우 모든 기본값이 사용됩니다. 기본 Controller는 SiteController이고 Action은 indexAction입니다. 즉, 예를 들어 웹사이트가 www.guidebee.com이고 Yii Framework를 사용하는 경우 사용자가 www.guidebee.com을 요청하면 해당 CWebApplication이 실행됩니다. Yii 애플리케이션은 SiteController 클래스 인스턴스를 생성하고 SiteController의 indexAction 메서드(C# 콘솔 애플리케이션의 Program 기본 메서드와 동일)를 호출합니다.

Yii 프로젝트는 Controller, Action, View, Layout 등을 저장하기 위해 다양한 디렉토리를 사용합니다. 기본 디렉토리 구조는 다음과 같습니다

testdrive/
index.php 웹 애플리케이션 항목 스크립트 파일
index-test.php 기능 테스트에 사용되는 항목 스크립트 파일
자산/ 공개 리소스 파일 포함
css/                          CSS 파일 포함 🎜> 이미지/ 이미지 파일 포함
테마/ 애플리케이션 테마 포함
protected/ 보호된 애플리케이션 파일 포함
yiic yiic 명령줄 스크립트
yiic.bat Windows의 yiic 명령줄 스크립트
yiic.php yiic 명령 line PHP 스크립트
Commands/에는 사용자 정의된 'yiic' 명령이 포함되어 있습니다.
shell/에는 사용자 정의된 'yiic shell' 명령이 포함되어 있습니다.
Components/에는 재사용 가능한 사용자 구성 요소가 포함되어 있습니다.
Controller .php 모든 컨트롤러 클래스에 대한 기본 클래스
Identity.php 인증에 사용되는 'Identity' 클래스
config/ 구성 파일 포함
console.php 콘솔 애플리케이션 구성
Main.php 웹 애플리케이션 구성
test.php 기능 테스트에 사용되는 구성
Controllers/ 컨트롤러의 클래스 파일 포함
SiteController.php 기본 컨트롤러의 클래스 파일
data/ 샘플 데이터베이스 포함
Schema.mysql.sql MySQL 데이터베이스 예시
SCHEMA.SQLITE .SQL 예제 SQLite 데이터베이스
Testdrive.db 예제 SQLITE 데이터베이스 파일
EXTENSIONS/ 타사 확장 포함
MESSAGES/ 번역된 메시지 포함
모델/ 포함된 모델 클래스 파일
LoginForm.php 'login ' 작업 양식 모델
ContactForm.php 'contact' 작업 양식 모델
런타임/ 임시 생성된 파일 포함
테스트 /                     테스트 스크립트 포함
views/ 컨트롤러에 대한 보기 및 레이아웃 파일 포함
레이아웃 보기 파일 포함
main.php 모든 보기의 기본 레이아웃
단일 열 페이지에 사용되는 레이아웃 사용
column2.php 이중 사용 열 페이지 레이아웃
사이트/보기 '사이트' 컨트롤러가 포함된 파일
"정적" 페이지가 포함된 페이지
About.php "정보" 페이지
Contact.php 'contact' 작업 보기
            error.php             보기 '오류' 동작(외부 오류 표시)
                 index.php          ''''''''' 동작 ‐ ‐ ‐‐‐‐‐‐‐ 보기, 🎜> 시스템/ 포함 시스템 파일 보기

这个目录结构可以通过Yii自带的工具来创建缺省的文件建立第一个 Yii 应用。

对于Hello World项目来说,没有必要这么复杂,我们只需创建 protected \controllers 目录以存放SiteController.php。

每个Yii应用都有的入口脚本,可以理解为C#的Program类。这个 入口脚本大同小异

<?php  
  
// 包含Yii引导文件  
//require_once(dirname(__FILE__).&#39;/../../framework/yii.php&#39;);  
$yii=&#39;C:/yiiframework/yii.php&#39;;  
// 发布应用时,去掉下面代码避免产生调试信息  
defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;,true);  
  
require_once($yii);  
// 创建一个应用实例并执行  
  
Yii::createWebApplication()->run();
<?php  
  
// 包含Yii引导文件  
//require_once(dirname(__FILE__).&#39;/../../framework/yii.php&#39;);  
$yii=&#39;C:/yiiframework/yii.php&#39;;  
// 发布应用时,去掉下面代码避免产生调试信息  
defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;,true);  
  
require_once($yii);  
// 创建一个应用实例并执行  
  
Yii::createWebApplication()->run();

前面说过Yii的缺省Controller为SiteController,缺省Action为actionIndex, 因此HelloWorld的SiteController代码如下

/** 
 * SiteController is the default controller to handle user requests. 
 */  
class SiteController extends CController  
{  
    /** 
     * Index action is the default action in a controller. 
     */  
    public function actionIndex()  
    {  
        echo &#39;Hello World&#39;;  
    }  
}
/** 
 * SiteController is the default controller to handle user requests. 
 */  
class SiteController extends CController  
{  
    /** 
     * Index action is the default action in a controller. 
     */  
    public function actionIndex()  
    {  
        echo &#39;Hello World&#39;;  
    }  
}

此时再运行应用,可以在浏览器中显示“Hello,World”。 目前没有使用MVC模型直接在Controller 使用echo 打印出“Hello,World”, 下面稍微修改一下代码,创建一个简单的View。

View缺省目录为protected 目录下的views 子目录,和Controller类对于,比如SiteController对应到Views目录下的site子目录,和Asp.Net一样,Yii的View(对应到Asp.Net的Page类)也可以使用MasterPage,Yii应用成为Layout,缺省Layout存放在views的layouts 子目录。

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World

修改SiteController的actionIndex 方法,改为:

public function actionIndex()  
{  
 $this->render("index");  
}
public function actionIndex()  
{  
 $this->render("index");  
}

View 视图是一个包含了主要的用户交互元素的PHP脚本.他可以包含PHP语句,但是我们建议这些语句不要去改变数据模型,且最好能够保持其单纯性(单纯作为视图)。为了实现逻辑和界面分离,大段的逻辑应该被放置于控制器或模型中,而不是视图中,视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。

actionIndex 通过render 方法来显示一个View,对应到views->site 目录下的 index.php 。render 缺省使用views ->layouts 下的 main.php 作为 Layout (布局,MasterPage)

布局是一种用来修饰视图的特殊的视图文件.它通常包含了用户界面中通用的一部分视图.例如:布局可以包含header和footer的部分,然后把内容嵌入其间.

......header here......

......footer here......

其中的 $content 则储存了内容视图的渲染结果.

来看一下View是目录下的index.php (View) 代码:

<?php echo "Hello,World!"; ?>
<?php echo "Hello,World!"; ?>

这样就完成了Hello,World的MVC模型,运行显示“Hello,World”。

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(1) 첫 번째 애플리케이션 Hello World

以上就是PHP开发框架Yii Framework教程(1) 第一个应用Hello World的内容,更多相关内容请关注PHP中文网(www.php.cn)!


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 세션이 실패 할 수있는 몇 가지 일반적인 문제는 무엇입니까?PHP 세션이 실패 할 수있는 몇 가지 일반적인 문제는 무엇입니까?Apr 25, 2025 am 12:16 AM

phpsession 실패 이유에는 구성 오류, 쿠키 문제 및 세션 만료가 포함됩니다. 1. 구성 오류 : 올바른 세션을 확인하고 설정합니다. 2. 쿠키 문제 : 쿠키가 올바르게 설정되어 있는지 확인하십시오. 3. 세션 만료 : 세션 시간을 연장하기 위해 세션을 조정합니다 .GC_MAXLIFETIME 값을 조정하십시오.

PHP의 세션 관련 문제를 어떻게 디버그합니까?PHP의 세션 관련 문제를 어떻게 디버그합니까?Apr 25, 2025 am 12:12 AM

PHP에서 세션 문제를 디버그하는 방법 : 1. 세션이 올바르게 시작되었는지 확인하십시오. 2. 세션 ID의 전달을 확인하십시오. 3. 세션 데이터의 저장 및 읽기를 확인하십시오. 4. 서버 구성을 확인하십시오. 세션 ID 및 데이터를 출력, 세션 파일 컨텐츠보기 등을 통해 세션 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.

session_start ()가 여러 번 호출되면 어떻게됩니까?session_start ()가 여러 번 호출되면 어떻게됩니까?Apr 25, 2025 am 12:06 AM

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

PHP에서 세션 수명을 어떻게 구성합니까?PHP에서 세션 수명을 어떻게 구성합니까?Apr 25, 2025 am 12:05 AM

SESSION.GC_MAXLIFETIME 및 SESSION.COOKIE_LIFETIME을 설정하여 PHP에서 세션 수명을 구성 할 수 있습니다. 1) SESSION.GC_MAXLIFETIME 서버 측 세션 데이터의 생존 시간을 제어합니다. 2) 세션 .Cookie_Lifetime 클라이언트 쿠키의 수명주기를 제어합니다. 0으로 설정하면 브라우저가 닫히면 쿠키가 만료됩니다.

세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?Apr 24, 2025 am 12:16 AM

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?Apr 24, 2025 am 12:16 AM

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

세션 ID 란 무엇입니까?세션 ID 란 무엇입니까?Apr 24, 2025 am 12:13 AM

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?Apr 24, 2025 am 12:12 AM

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 ​​있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.