検索
ホームページPHPフレームワークYIIYii フレームワークを使用してニュース Web サイトを作成する

Yii フレームワークを使用してニュース Web サイトを作成する

Jun 21, 2023 am 08:40 AM
作成するyii フレームワークニュースサイト

オンライン メディアの人気に伴い、ニュース Web サイトの需要も高まっています。ニュース Web サイトを作成する予定がある場合は、Yii フレームワークを使用して Web サイトを構築することを検討してください。 Yii は、Web アプリケーション開発をよりシンプルかつ効率的に行うために設計された人気の PHP フレームワークです。

Yii フレームワークには、次のような多くの利点があります。

  1. 効率的なパフォーマンス

Yii フレームワークは、大量の同時リクエストを処理できる高速なフレームワークです。 。これは、Yii フレームワークが最新の PHP テクノロジーの一部を採用し、Web サイトのパフォーマンスを向上させるためにさまざまなキャッシュ メカニズムを使用しているためです。この機能は、トラフィックが多い状況に対処できる必要があるため、ニュース Web サイトにとって非常に重要です。

  1. 柔軟で拡張が簡単

Yii フレームワークは非常に柔軟で、簡単に拡張およびカスタマイズできます。新しい機能を追加したり、既存の機能を変更したりする必要がある場合、Yii フレームワークは非常に明確な拡張インターフェイスとクラス ライブラリを提供します。これは、新しいモジュールやプラグインを簡単に作成して Web サイトに統合できることを意味します。

  1. 高セキュリティ

Yii フレームワークはセキュリティを設計原則として採用し、一連のセキュリティ保護メカニズムを提供します。これらのメカニズムには、入力フィルタリング、データ暗号化、認証、認可機能が含まれます。これらのメカニズムは、ニュース Web サイトがハッカーやその他のセキュリティの脅威に対して脆弱でないことを保証するために必要です。

ここで、Yii フレームワークを使用してニュース Web サイトを作成する方法を見てみましょう。

最初のステップは Yii フレームワークをインストールすることです

始める前に、Yii フレームワークをインストールする必要があります。 Yii フレームワークをインストールするには、Composer または手動ダウンロードの 2 つの方法があります。ここでは、Composer のインストール方法を選択します。 Composer をまだインストールしていない場合は、まず Composer をインストールし、システム パスに追加してください。

ターミナルで、プロジェクト ディレクトリに移動し、次のコマンドを実行して Yii フレームワークをインストールします:

composer require yiisoft/yii2-app-basic

このコマンドは、Yii Basic アプリケーション テンプレートと Yii コア ライブラリをインストールします。インストールが完了したら、次のコマンドを実行して Yii アプリケーションを実行できます:

./yii serve

このコマンドはローカル Web サーバーを起動し、Yii アプリケーションを実行します。ブラウザで http://localhost:8080 を開いて Web サイトのホームページを表示できます。

第 2 ステップ、ニュース Web サイトのデータベースを設計する

Web アプリケーションを作成する前に、データベースを設計する必要があります。ニュース Web サイトに次のデータベース テーブルが必要であるとします。

  • news: ニュースのタイトル、内容、日付、作成者を格納します。
  • category: ニュースの分類情報を格納します
  • user: ニュース Web サイトのユーザー情報を保存します

Yii フレームワークでは、移行ツールを使用してデータベースを作成、更新、管理できます。次のコマンドを使用して、新しい移行を作成できます:

./yii migrate/create create_news_table

このコマンドは、create_news_table という名前の移行クラスを作成します。これは、news テーブルの作成に使用されます。およびその他の関連テーブル (category テーブルや user テーブルなど)。

create_news_table クラスでは、Yii フレームワークのデータベース API を使用してデータベーステーブルを作成する必要があります。たとえば、news テーブルを作成するサンプル コードは次のとおりです:

<?php

use yiidbMigration;

class m210816_100000_create_news_table extends Migration
{
    public function safeUp()
    {
        $this->createTable('news', [
            'id' => $this->primaryKey(),
            'title' => $this->string()->notNull(),
            'content' => $this->text(),
            'category_id' => $this->integer(),
            'user_id' => $this->integer(),
            'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'),
        ]);

        $this->addForeignKey('fk_news_category', 'news', 'category_id', 'category', 'id', 'CASCADE', 'CASCADE');
        $this->addForeignKey('fk_news_user', 'news', 'user_id', 'user', 'id', 'CASCADE', 'CASCADE');
    }

    public function safeDown()
    {
        $this->dropForeignKey('fk_news_category', 'news');
        $this->dropForeignKey('fk_news_user', 'news');

        $this->dropTable('news');
    }
}

このコードでは、Yii フレームワークの createTable メソッドを使用して ## を作成します。 #newsTable で、addForeignKey メソッドを使用して外部キー制約を定義し、データの一貫性を確保します。

Migration クラスを使用すると、次のコマンドを使用して Migration を実行し、新しいデータベース テーブルを作成できます。

./yii migrate/up

このコマンドは、新しいデータベース テーブルとその他の関連テーブルを作成します。

3 番目のステップは Yii モデルを作成することです

Yii フレームワークでは、モデルはビジネス ロジックとデータを表すために使用されるコア部分であり、MVC アーキテクチャ パターンの一部でもあります。 Yii フレームワークでは、モデルはデータを処理する最もシンプルかつ強力な方法です。

モデルを作成するには、次のコマンドを使用できます:

./yii generate/model News --tableName=news

このコマンドは、

News という名前のモデルを作成し、それを news に関連付けます。シート。次に、次のコードを使用してモデルをカスタマイズする必要があります。

<?php

namespace appmodels;

use Yii;

class News extends yiidbActiveRecord
{
    public static function tableName()
    {
        return 'news';
    }

    public function rules()
    {
        return [
            [['title'], 'required'],
            [['content'], 'string'],
            [['category_id', 'user_id'], 'integer'],
            [['created_at'], 'safe'],
            [['title'], 'string', 'max' => 255],
        ];
    }

    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'title' => 'Title',
            'content' => 'Content',
            'category_id' => 'Category ID',
            'user_id' => 'User ID',
            'created_at' => 'Created At',
        ];
    }
}

このコードでは、

News モデルのテーブル名と検証ルールを定義し、ラベル (テキスト) も定義します。ユーザーに表示するために使用されます)。このモデルを通じて、データ テーブルにアクセスして変更することができます。例:

$news = new News();
$news->title = 'Hello, World!';
$news->content = 'Welcome to my news website.';
$news->category_id = 1;
$news->user_id = 1;
$news->save();

これにより、ニュース項目が

news テーブルに追加されます。

4 番目のステップは、Yii コントローラとビューを作成することです

Yii フレームワークでは、コントローラはユーザーのリクエストを処理し、レスポンスをレンダリングするために使用される部分です。コントローラーはユーザー要求を正しいアクションにルーティングし、特定のビュー ファイルを使用して応答をレンダリングします。

コントローラーを作成するには、次のコマンドを使用できます:

./yii generate/controller News

これにより、

NewsController という名前のコントローラーが作成されます。次に、コントローラーにいくつかの操作を追加する必要があります。例:

<?php

namespace appcontrollers;

use Yii;
use appmodelsNews;
use yiiwebController;

class NewsController extends Controller
{
    public function actionIndex()
    {
        $news = News::find()->all();
        return $this->render('index', [
            'news' => $news,
        ]);
    }

    public function actionView($id)
    {
        $news = News::findOne($id);
        return $this->render('view', [
            'news' => $news,
        ]);
    }

    public function actionCreate()
    {
        $news = new News();
        if ($news->load(Yii::$app->request->post()) && $news->save()) {
            return $this->redirect(['view', 'id' => $news->id]);
        }
        return $this->render('create', [
            'news' => $news,
        ]);
    }

    public function actionUpdate($id)
    {
        $news = News::findOne($id);
        if ($news->load(Yii::$app->request->post()) && $news->save()) {
            return $this->redirect(['view', 'id' => $news->id]);
        }
        return $this->render('update', [
            'news' => $news,
        ]);
    }

    public function actionDelete($id)
    {
        $news = News::findOne($id);
        $news->delete();
        return $this->redirect(['index']);
    }
}

このコードでは、5 つの操作を定義します:

IndexView Update、および Delete を作成します。これにより、ビュー ファイルがユーザーに提示され、ユーザーのリクエストに基づいて応答が返されます。

これらの操作用のビュー ファイルを作成するには、たとえば次のようにします。
  • app/views/news/index.php
  • app/views/news/view.php
  • app/views/news/create.php
  • app/views/news/update.php

你需要添加如下代码:

<?php foreach ($news as $item): ?>
    <div>
        <h2><?= $item->title ?></h2>
        <p><?= $item->content ?></p>
        <p><?= $item->created_at ?></p>
        <p>Author: <?= $item->user_id ?></p>
        <p>Category: <?= $item->category_id ?></p>
        <a href="<?= Yii::$app->urlManager->createUrl(['news/view', 'id' => $item->id]) ?>">View</a>
        <a href="<?= Yii::$app->urlManager->createUrl(['news/update', 'id' => $item->id]) ?>">Update</a>
        <a href="<?= Yii::$app->urlManager->createUrl(['news/delete', 'id' => $item->id]) ?>">Delete</a>
    </div>
<?php endforeach; ?>

在这个代码中,我们用循环遍历新闻,然后为每个新闻输出标题、内容、日期、作者和分类,以及三个按钮View、Update和Delete。

第五步,定义Yii路由和URL规则

在Yii框架中,路由和URL规则告诉Yii框架如何将用户请求路由到正确的控制器和操作。

默认情况下,Yii框架使用/controller/action格式的URL,例如/news/index。但是你可以自定义路由和URL规则,例如将/news路由到NewsControllerIndex操作。

要定义路由和URL规则,你可以使用如下代码:

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        // NewsController
        ['class' => 'yiiestUrlRule', 'controller' => 'news'],
        'news' => 'news/index',
        'news/create' => 'news/create',
        'news/<id:d+>' => 'news/view',
        'news/<id:d+>/update' => 'news/update',
        'news/<id:d+>/delete' => 'news/delete',
    ],
],

在这个代码中,我们使用规则数组来自定义路由和URL规则。例如,我们将news路由到NewsControllerIndex操作,而将news/create路由到NewsControllerCreate操作。

第六步,测试Yii应用程序

现在,你已经创建了一个新闻网站,并使用Yii框架构建了它。要测试你的新闻网站,你可以在终端中运行如下命令启动本地Web服务器:

./yii serve

然后在浏览器中打开http://localhost:8080,查看你的新闻网站。

最后,当你为你的新闻网站添加更多功能时,你可以根据你的业务需要扩展Yii框架的功能。Yii框架提供了许多工具和类库,可以帮助你尽可能快地开发出高效、安全和易于扩展的Web应用程序。

以上がYii フレームワークを使用してニュース Web サイトを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Yii in Action:現在のアプリケーションとプロジェクトYii in Action:現在のアプリケーションとプロジェクトApr 24, 2025 am 12:03 AM

YIIフレームワークは、エンタープライズレベルのアプリケーション、中小規模のプロジェクト、個々のプロジェクトに適しています。 1)エンタープライズレベルのアプリケーションでは、YIIの高性能とスケーラビリティにより、eコマースプラットフォームなどの大規模なプロジェクトでは傑出しています。 2)中小規模のプロジェクトでは、YIIのGIIツールがプロトタイプとMVPを迅速に構築するのに役立ちます。 3)個人およびオープンソースのプロジェクトでは、Yiiの軽量機能により、小さなWebサイトやブログに適しています。

YIIの使用:堅牢でスケーラブルなWebソリューションの作成YIIの使用:堅牢でスケーラブルなWebソリューションの作成Apr 23, 2025 am 12:16 AM

YIIフレームワークは、効率的で安全でスケーラブルなWebアプリケーションを構築するのに適しています。 1)YIIはMVCアーキテクチャに基づいており、コンポーネントの設計とセキュリティ機能を提供します。 2)基本的なCRUD操作と高度なRestfulapi開発をサポートします。 3)ロギングやデバッグツールバーなどのデバッグスキルを提供します。 4)パフォーマンスの最適化には、キャッシュと怠zyなロードを使用することをお勧めします。

Yiiの目的:Webアプリケーションを迅速かつ効率的に構築しますYiiの目的:Webアプリケーションを迅速かつ効率的に構築しますApr 22, 2025 am 12:07 AM

Yiiの目的は、開発者がWebアプリケーションを迅速かつ効率的に構築できるようにすることです。その実装は、次の方法を通じて実装されます。1)コンポーネントベースの設計とMVCアーキテクチャは、コードの保守性と再利用性を向上させます。 2)GIIツールは、開発速度を改善するためのコードを自動的に生成します。 3)怠zyな負荷とキャッシュメカニズムの最適化パフォーマンス。 4)サードパーティライブラリの統合を容易にする柔軟なスケーラビリティ。 5)複雑なビジネスロジックを処理するRBAC関数を提供します。

Yiiの汎用性:単純なサイトから複雑なプロジェクトまでYiiの汎用性:単純なサイトから複雑なプロジェクトまでApr 21, 2025 am 12:08 AM

yiiisversatileavssustable ofallsizes.1)simple sites、yiioofferseassetupandrapiddevelopment.2)forcomplexprojects、itModularityandrbacsystemmanageScalabilityandsecurity効果的。

YiiとPHPフレームワークの未来YiiとPHPフレームワークの未来Apr 20, 2025 am 12:11 AM

YIIフレームワークは、PHPフレームワークの将来の開発において引き続き重要な役割を果たします。 1)YIIは、効率的なMVCアーキテクチャ、強力なORMシステム、ビルトインキャッシュメカニズム、リッチ拡張ライブラリを提供します。 2)コンポーネント設計と柔軟性により、複雑なビジネスロジックと安らかなAPI開発に適しています。 3)YIIは、マイクロサービスやコンテナ化などの最新のPHP機能と技術的なトレンドに適応するために絶えず更新されています。

Yii in Action:実際の例とアプリケーションYii in Action:実際の例とアプリケーションApr 19, 2025 am 12:03 AM

YIIフレームワークは、あらゆるサイズのWebアプリケーションの開発に適しており、その利点は高性能で豊富な機能セットにあります。 1)YIIはMVCアーキテクチャを採用しており、そのコアコンポーネントにはActiverCord、ウィジェット、GIIツールが含まれます。 2)要求処理プロセスを通じて、YIIはHTTP要求を効率的に処理します。 3)基本的な使用法は、コントローラーとビューを作成する簡単な例を示しています。 4)高度な使用は、ActiverCordを介したデータベース操作の柔軟性を示しています。 5)デバッグスキルには、デバッグツールバーとロギングシステムの使用が含まれます。 6)パフォーマンスの最適化キャッシュとデータベースクエリの最適化を使用し、コーディング仕様と依存関係インジェクションに従ってコードの品質を向上させることをお勧めします。

Yii2にエラープロンプトを表示する方法Yii2にエラープロンプトを表示する方法Apr 18, 2025 pm 11:09 PM

Yii2には、エラープロンプトを表示する主な方法が2つあります。 1つは、Yii :: $ app-&amp; gt; errorhandler-&amp; gt; exception()を使用して、例外が発生したときにエラーを自動的にキャッチおよび表示することです。もう1つは、$ this-&amp; gt; adderror()を使用することです。これは、モデル検証が失敗したときにエラーを表示し、$ model&amp; gt; getErrors()を介してビューでアクセスできます。ビューでは、if($ errors = $ model-&amp; gt; getErrors())を使用できます。

Yi2とTP5の違いは何ですかYi2とTP5の違いは何ですかApr 18, 2025 pm 11:06 PM

PHPフレームワークテクノロジーの継続的な開発により、Yi2とTP5は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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。