首頁  >  文章  >  php框架  >  Yii框架入門指南:基礎知識與應用

Yii框架入門指南:基礎知識與應用

王林
王林原創
2023-06-21 08:58:362994瀏覽

簡介:

Yii是一款高效能、安全、易於擴展的PHP Web應用程式框架,它用於快速開發現代Web應用程式。 Yii框架原始碼採用MIT許可證授權,您可以在商業專案中免費使用,只需遵循該許可證的規定即可。

文章:

  1. Yii的介紹

Yii應用程式框架是基於MVC(Model-View-Controller) 模式的Web應用程式框架。它是一個物件導向的框架,旨在簡化開發過程並提高Web應用程式的效能和安全性。

Yii框架提供了一系列的元件和工具,可以協助快速開發先進的網路應用程式。 Yii框架的目標是提供一個高效、安全和易於使用的框架,使開發人員在使用它時可以節省時間和精力。

  1. Yii的安裝和設定

在開始使用Yii框架之前,首先需要安裝它。 Yii框架可以透過composer指令進行安裝,需要確保已經安裝了composer指令。以下是如何安裝Yii框架的步驟:

composer require yiisoft/yii2-app-basic

安裝完成後,可以透過設定檔來設定Yii框架。預設情況下,Yii框架使用設定檔config/web.php。該檔案可用於配置應用程式的所有元件,例如資料庫元件、路由器元件等等。

  1. Yii的基本結構

Yii框架的基本結構如下:

project/
    assets/                 用于存储自动生成的Web资源
    commands/               包含项目命令文件
    config/                 包含应用程序的配置文件
        web.php             Web应用程序配置文件
    controllers/            包含项目的控制器类
    models/                 包含与数据库表对应的模型类
    runtime/                用于存储临时文件和缓存文件
    tests/                  用于存储单元测试和功能测试文件
    vendor/                 包含应用程序的依赖项
    views/                  包含Web应用程序的视图文件
    web/                    包含可以通过Web访问的文件(包括index.php前台文件)
  1. Yii的路由
# #路由控制器解析URL,並將請求轉送到正確的控制器和方法。 Yii框架的路由提供了各種靈活的選項,包括傳統的URL路徑、查詢字串和基於規則的路由。在Yii框架中,可以使用以下方法聲明路由規則:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        '<controller:w+>/<id:d+>'=>'<controller>/view',
        '<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
        '<controller:w+>/<action:w+>'=>'<controller>/<action>',
    ],
],

    Yii的模型
Yii框架的模型是與資料庫表相關聯的對象,它們可以用於執行各種操作,例如讀取和寫入資料。 Yii框架的模型實現了Active Record模式,並提供了一些有用的功能,例如資料驗證和資料關聯。

以下是Yii框架模型的一個範例:

class User extends yiidbActiveRecord
{
    public static function tableName()
    {
        return 'user';
    }
 
    public function rules()
    {
        return [
            [['username', 'email'], 'required'],
            [['username', 'email'], 'unique'],
            [['email'], 'email'],
        ];
    }
 
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'username' => '用户名',
            'email' => 'Email',
        ];
    }
}

    Yii的視圖和佈局
Yii框架的視圖是顯示資料和使用者互動的場所。它們可以包含HTML、CSS和JavaScript程式碼,以及PHP程式碼,用於輸出資料和與使用者互動。視圖可以使用佈局來共享通用的程式碼段和視圖元素。

以下是Yii框架視圖和佈局的範例:

<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
    <meta charset="<?= Yii::$app->charset ?>"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?= Html::csrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>
 
<div class="container">
    <?= $content ?>
</div>
 
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>

    Yii的控制器
Yii框架的控制器負責處理Web應用程式的使用者請求,並與模型和視圖互動。控制器包含多個操作,每個操作處理一個頁面請求。每個操作都可以渲染一個視圖或直接輸出資料。

以下是Yii框架控制器的一個範例:

class UserController extends yiiwebController
{
    public function actionIndex()
    {
        $users = User::find()->all();
        return $this->render('index', ['users' => $users]);
    }
 
    public function actionView($id)
    {
        $user = User::findOne($id);
        return $this->render('view', ['user' => $user]);
    }
 
    public function actionCreate()
    {
        $user = new User();
        if($user->load(Yii::$app->request->post()) && $user->save()){
            return $this->redirect(['view', 'id' => $user->id]);
        }
        return $this->render('create', ['user' => $user]);  
    }
 
    public function actionUpdate($id)
    {
        $user = User::findOne($id);
        if($user->load(Yii::$app->request->post()) && $user->save()){
            return $this->redirect(['view', 'id' => $user->id]);
        }
        return $this->render('update', ['user' => $user]);
    }
 
    public function actionDelete($id)
    {
        $user = User::findOne($id);
        $user->delete();
        return $this->redirect(['index']);
    }
}

結論:

以上就是Yii框架的介紹、安裝、基本結構、路由、模型、視圖、佈局和控制器的基礎知識和應用,它們是學習Yii框架的基礎。有了這些知識,您就可以開始使用Yii框架建立複雜的Web應用程式了。

以上是Yii框架入門指南:基礎知識與應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn