>  기사  >  백엔드 개발  >  Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기

Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기

黄舟
黄舟원래의
2017-02-11 09:27:511214검색

<br>

<br>

Yii에 대한 사전 이해를 돕기 위해 이 섹션에서는 첫 번째 Yii 애플리케이션을 구축하는 방법을 설명하겠습니다. yiic(명령줄 도구)을 사용하여 새로운 Yii 애플리케이션을 생성하겠습니다. Gii(강력한 웹 기반 코드 생성기)는 특정 작업에 대한 자동 코드 생성을 완료합니다. YiiRoot가 Yii의 설치 디렉터리이고 WebRoot가 서버의 문서 루트 디렉터리라고 가정합니다. 다음과 같이 명령줄에서 yiic을 실행합니다.

% YiiRoot/framework/yiic webapp WebRoot/testdrive

참고: MacOS, Linux 또는 Unix 시스템에서 yiic을 실행하는 경우 yiic 파일의 권한을 다음과 같이 수정해야 할 수도 있습니다. 실행할 수 있도록 합니다. 그리고 터미널 명령줄에서 php 명령을 직접 실행할 수 있어야 합니다(테스트하려면 터미널에서 php -v를 사용할 수 있음). 그렇지 않은 경우 실행 가능한 PHP 경로를 시스템 경로에 배치해야 합니다. 또한 다음과 같이 이 도구를 실행할 수도 있습니다.

% cd WebRoot
% php YiiRoot/framework/yiic.php webapp testdrive

이렇게 하면 WebRoot/testdrive 디렉터리에 기본 Yii 애플리케이션이 생성됩니다. 이 애플리케이션은 대부분의 Yii 애플리케이션에 필요한 디렉토리 구조를 가지고 있습니다. 코드 한 줄을 작성하지 않고도 브라우저에서 다음 URL에 액세스하여 첫 번째 Yii 애플리케이션을 살펴볼 수 있습니다.

http://www.php.cn/

보시다시피 이 애플리케이션에는 홈 페이지, 연락처 페이지, 그리고 로그인 페이지. 홈 페이지에는 애플리케이션 및 사용자의 로그인 상태에 대한 일부 정보가 표시되고, 연락처 페이지에는 사용자가 문의 사항을 작성하고 제출할 수 있는 문의 양식이 표시되며, 로그인 페이지에서는 사용자가 먼저 인증한 다음 승인된 콘텐츠에 액세스할 수 있습니다. 자세한 내용은 다음 스크린샷을 확인하세요.

Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기

아래 트리 다이어그램은 애플리케이션의 디렉터리 구조를 설명합니다.

testdrive/
   index.php                 Web 应用入口脚本文件
   index-test.php            功能测试使用的入口脚本文件
   assets/                   包含公开的资源文件
   css/                      包含 CSS 文件
   images/                   包含图片文件
   themes/                   包含应用主题
   protected/                包含受保护的应用文件
      yiic                   yiic 命令行脚本
      yiic.bat               Windows 下的 yiic 命令行脚本
      yiic.php               yiic 命令行 PHP 脚本
      commands/              包含自定义的 'yiic' 命令
         shell/              包含自定义的 'yiic shell' 命令
      components/            包含可重用的用户组件
         Controller.php      所有控制器类的基础类
         Identity.php        用来认证的 'Identity' 类
      config/                包含配置文件 console.php         控制台应用配置
         main.php            Web 应用配置
         test.php            功能测试使用的配置
      controllers/           包含控制器的类文件
         SiteController.php  默认控制器的类文件
      data/                  包含示例数据库 schema.mysql.sql    示例 MySQL 数据库
         schema.sqlite.sql   示例 SQLite 数据库
         testdrive.db        示例 SQLite 数据库文件
      extensions/            包含第三方扩展
      messages/              包含翻译过的消息
      models/                包含模型的类文件
         LoginForm.php       'login' 动作的表单模型
         ContactForm.php     'contact' 动作的表单模型
      runtime/               包含临时生成的文件
      tests/                 包含测试脚本
      views/                 包含控制器的视图和布局文件
         layouts/            包含布局视图文件
            main.php         所有视图的默认布局
            column1.php      使用单列页面使用的布局
            column2.php      使用双列的页面使用的布局
         site/               包含 'site' 控制器的视图文件
            pages/           包含 "静态" 页面
               about.php     "about" 页面的视图
            contact.php      'contact' 动作的视图
            error.php        'error' 动作的视图(显示外部错误)
            index.php        'index' 动作的视图
            login.php        'login' 动作的视图
         system/             包含系统视图文件

1. 데이터베이스에 연결

대부분의 웹 애플리케이션은 데이터베이스에 의해 구동되며 우리의 테스트 애플리케이션도 예외는 아닙니다. 데이터베이스를 사용하려면 먼저 애플리케이션에 연결 방법을 알려주어야 합니다. 애플리케이션의 구성 파일 WebRoot/testdrive/protected/config/main.php를 다음과 같이 수정하세요.

<br>

return array(
    ......
    'components'=>array(
        ......
        'db'=>array(
            'connectionString'=>'sqlite:protected/data/source.db',
        ),
    ),
    ......
);

위 내용 코드는 필요할 때 Yii 애플리케이션에 SQLite 데이터베이스 WebRoot/testdrive/protected/data/testdrive.db에 연결하도록 지시합니다. 이 SQLite 데이터베이스는 우리가 만든 애플리케이션 프레임워크에 이미 포함되어 있습니다. 데이터베이스에는 tbl_user라는 테이블 하나만 포함되어 있습니다.

<br>

CREATE TABLE tbl_user (
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    username VARCHAR(128) NOT NULL,
    password VARCHAR(128) NOT NULL,
    email VARCHAR(128) NOT NULL
);

MySQL 데이터베이스로 변경하려면 가져오기가 필요합니다. WebRoot/testdrive/protected/data/schema.mysql.sql 파일을 사용하여 데이터베이스를 생성합니다.

참고: Yii의 데이터베이스 기능을 사용하려면 PHP의 PDO 확장과 해당 드라이버 확장을 활성화해야 합니다. 테스트 애플리케이션의 경우 php_pdo 및 php_pdo_sqlite 확장을 활성화해야 합니다.

2. CRUD 작업 구현

흥미로운 순간이 왔습니다. 방금 생성한 tbl_user 테이블에 대해 실제 애플리케이션에서 가장 일반적인 작업이기도 한 CRUD(생성, 읽기, 업데이트 및 삭제) 작업을 구현하려고 합니다. 실제 코드를 작성하는 수고를 겪지 않고 여기서는 강력한 웹 기반 코드 생성기인 Gii를 사용하겠습니다.

Gii 구성

Gii를 사용하려면 먼저 애플리케이션 구성이라고 알려진 WebRoot/testdrive/protected/main.php 파일을 편집해야 합니다. 파일:

return array(
    ......
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),

    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'pick up a password here',
        ),
    ),
);

그런 다음 http://www.php.cn/을 방문하세요. 여기에는 위의 구성에서 지정한 비밀번호를 입력해야 합니다.

사용자 모델 생성

로그인 후 모델 생성기 링크를 클릭하세요. 다음과 같은 모델 생성 페이지가 표시됩니다. Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기

테이블 이름 입력 상자에 tbl_user를 입력합니다. 모델 클래스 입력 상자에 User를 입력합니다. 그런 다음 미리보기 버튼을 클릭하세요. 그러면 생성될 새 파일이 표시됩니다. 이제 생성 버튼을 클릭하세요. User.php라는 파일이 protected/models 디렉터리에 생성됩니다. 나중에 설명하겠지만 User 모델 클래스를 사용하면 객체 지향 방식으로 데이터 테이블 tbl_user에 액세스할 수 있습니다.

CRUD 코드 생성

모델 클래스를 생성한 후 CRUD 작업을 수행하는 코드를 생성합니다. 아래와 같이 Gii에서 Crud Generator를 선택합니다. Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기

在Model Class输入框中,输入User。在Controller ID输入框中,输入user(小写格式)。现在点击Generate按钮后的 Preview按钮。CRUD 代码生成完成了。

访问 CRUD 页面

让我们看看成果,访问如下 URL:

http://www.php.cn/

这会显示一个tbl_user表中记录的列表。 点击页面上的Create User 链接,如果没有登录的话我们将被带到Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기。登录后,我们看到一个可供我们添加新用户的表单。完成表单并点击Create按钮,如果有任何输入错误的话,一个友好的错误提示将会显示并阻止我们保存。回到用户列表页,我们应该能看到刚才添加的用户显示在列表中。 重复上述步骤以添加更多用户。注意,如果一页显示的用户条目太多,列表页会自动分页。 如果我们使用admin/admin作为管理员登录,我们可以在如下 URL 查看用户管理页:

http://www.php.cn/

这会显示一个包含用户条目的漂亮表格。我们可以点击表头的单元格来对相应的列进行排序,而且它和列表页一样会自动分页。 实现所有这些功能不要我们编写一行代码!

<br>

Yii 프레임워크 공식 튜토리얼 보충 자료 3 - 시작하기: 첫 번째 Yii 애플리케이션 만들기

以上就是Yii框架官方教程增补篇3——开始:创建第一个Yii应用的内容,更多相关内容请关注PHP中文网(www.php.cn)!

<br>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.