• <span id="stucq"></span>
    <span id="stucq"></span>
  • BodyIdAttribute?><\/span><\/span>><\/span><\/span><\/pre> yiiはコード受容と厳密に統(tǒng)合されています。 Codeceptionは、アプリケーションのユニット、機(jī)能、受け入れテストの作成プロセスを簡(jiǎn)素化するのに役立つ優(yōu)れたPHPテストフレームワークです。すべてのアプリケーションの自動(dòng)テストを書(shū)いているからですよね?

    \n<\/h2>CodeCeption拡張により、テスト中にアプリケーションを簡(jiǎn)単に構(gòu)成できます。提供された\/tests\/_config.phpファイルを編集して、テストアプリケーションを構(gòu)成します。たとえば、

    \n\n<\/p>\n\n

    この構(gòu)成を使用して、次のことが起こります\n<\/p>\n

    return [\n<\/span>    \/\/ ...\n<\/span>    'components' => [\n<\/span>        \/\/ ...\n<\/span>        'view' => [\n<\/span>            'class' => 'app\\components\\View'\n<\/span>        ]   \n<\/span>    ]\n<\/span>];<\/span><\/pre>機(jī)能テストと受け入れテスト中に送信されたメールは、送信される代わりにファイルに書(shū)き込まれます。\n

    テストのURLは、\/コントローラー\/アクションではなく、index.php\/controller\/actionの形式を使用します<\/p>\n

      テストは、実稼働データベースではなく、テストデータベースを使用します。\n
    1. \n<\/li> YIIフレームワークの特別なモジュールは、コード受信內(nèi)にも存在します。 TestGuyクラスにいくつかの方法を追加します。これは、機(jī)能テスト中にアクティブレコード(YIIのORM)を使用するのに役立ちます。たとえば、登録フォームがユーザー名「Testuser」を備えた新しいユーザーが正常に作成されたかどうかを確認(rèn)したい場(chǎng)合は、次のことを行うことができます。\n\n\n
    2. \n\n\n\n<\/li> 5。セキュリティを簡(jiǎn)素化します
    3. \n<\/li>セキュリティはあらゆるWebアプリケーションの重要な部分であり、幸いなことに、Yiiにはあなたの心を和らげるためのいくつかの素晴らしい機(jī)能があります。\n<\/ol>yiiには、より安全なアプリケーションの作成を支援するためにいくつかの方法を公開(kāi)するセキュリティアプリケーションコンポーネントが付屬しています。より便利な方法のいくつかは次のとおりです
        \n
      • GeneratePassWordHash:パスワードとランダム塩から安全なハッシュを生成します。この方法により、ランダム塩が作成され、PHPの暗號(hào)関數(shù)を使用して付屬の文字列からハッシュを作成します。\n<\/li>validatePassword:これは、generatepasswordhashのコンパニオン関數(shù)であり、ユーザーが提供したパスワードが保存されたハッシュと一致するかどうかを確認(rèn)できます。\n
      • Generaterandomkey:任意の長(zhǎng)さのランダムな文字列を作成できます<\/li>\n
      • \n<\/li>YIIは、すべての安全でないHTTPリクエストメソッド(put、post、削除)で有効なCSRFトークンを自動(dòng)的にチェックし、ActiveForm :: begin()メソッドを使用するとトークンを生成および出力します。この機(jī)能は、メイン構(gòu)成ファイルを編集して以下を含めることで無(wú)効にできます。\n\n<\/ul>\n\n

        XSSから保護(hù)するために、YIIはHTMLPurifierと呼ばれる別のヘルパークラスを提供します。このクラスには、プロセスという名前の単一の靜的メソッドがあり、同じ名前の一般的なフィルターライブラリを使用して出力をフィルタリングします。\n<\/p>YIIには、ユーザー認(rèn)証と承認(rèn)のためのすぐに使用できるクラスも含まれています。 ACF(アクセス制御フィルター)とRBAC(ロールベースのアクセス制御)の2つのタイプに承認(rèn)が分かれています。\n

        use yii\\helpers\\Html<\/span>;<\/span><\/pre>2つのうちの簡(jiǎn)単なのはACFであり、コントローラーの動(dòng)作方法に以下を追加することにより実裝されます。\n\n

        \n\n<\/p>前述のコードは、DefaultControllertoでゲストユーザーがログインおよびビューアクションにアクセスできるようにしますが、作成アクションは作成されません。 (?匿名のユーザーのエイリアスは、 @は認(rèn)証されたユーザーを參照しています)。\n

        RBACは、アプリケーション全體で特定のアクションを?qū)g行できるユーザーを指定するより強(qiáng)力な方法です。ユーザーの役割を作成し、アプリの権限を定義し、意図した役割のそれらのアクセス許可を有効にすることが含まれます。モデレーターの役割を作成したい場(chǎng)合は、この方法を使用し、この役割に割り當(dāng)てられたすべてのユーザーが記事を承認(rèn)できるようにすることができます。 <\/p>\n

        RBACを使用してルールを定義することもできます。これにより、特定の條件下で、アプリケーションの特定の側(cè)面へのアクセスを許可することもできます。たとえば、ユーザーが自分の記事を編集できるようにするルールを作成できますが、他の記事は作成したものではありません。\n<\/p> 6。開(kāi)発時(shí)間を短縮

        public static $aliases = ['@yii' => __DIR__];<\/span><\/pre>\n

        ほとんどのプロジェクトには、時(shí)間を無(wú)駄にしたくない一定の繰り返しタスクが含まれます。 Yiiは、これらのタスクに費(fèi)やす時(shí)間を減らし、クライアントのニーズに合わせてアプリケーションをカスタマイズする時(shí)間を増やすのに役立ついくつかのツールを提供します。\n<\/p>これらのツールの中で最も強(qiáng)力なものの1つは「GII」と呼ばれます。 GIIはWebベースのコード足場(chǎng)ツールであり、次のコードテンプレートをすばやく作成できます。\n

        \n<\/p>モデル

        \n<\/p>コントローラー

        \n<\/h2> forms

        \n<\/p>モジュール

        \n<\/p>拡張機(jī)能

          \n
        • CRUDコントローラーのアクションとビュー<\/li>\n
        • \n<\/li> giiは高度に構(gòu)成可能です。特定の環(huán)境でのみロードするように設(shè)定できます。次のようにWeb構(gòu)成ファイルを編集するだけです:
        • \n
          use yii\\helpers\\Html<\/span>;<\/span><\/pre>\n\nこれにより、GIIはYii環(huán)境変數(shù)が

          開(kāi)発に設(shè)定されている場(chǎng)合にのみロードされ、LocalHostを介してアクセスした場(chǎng)合にのみロードされることが保証されます。 <\/em>\n<\/p>それでは、モデルジェネレーター:

          を見(jiàn)てみましょう\n<\/p>

          \"Yii\n<\/p>テーブル名はTypeaHeadウィジェットを使用して、モデルが関連付けられているテーブルを推測(cè)しようとし、すべてのフィールドにはロールオーバーツールチップがあり、それらを記入する方法を思い出させます。 GIIに生成するように依頼する前にコードをプレビューできます。すべてのコードテンプレートは完全にカスタマイズ可能です。\nまた、データベース移行のコードテンプレート、メッセージ翻訳(I18N)、および自動(dòng)テスト用のデータベース固定具を作成するのに役立つコマンドラインツールもいくつかあります。たとえば、このコマンドを使用して新しいデータベース移行ファイルを作成できます。\n\n

          \n\n<\/p>これにより、{appdir}\/移行に新しい移行テンプレートが作成されます。\n\n

          \n\n<\/p>このテーブルにいくつかの列を追加したかったとしましょう。 UPメソッドに次のことを追加するだけです:

          public static $aliases = ['@yii' => __DIR__];<\/span><\/pre>\n\n\n

          \n\n<\/p>そして、移行を逆転させることができることを確認(rèn)するために、ダウンメソッドを編集します:

          namespace app\\components<\/span>;\n<\/span>\nclass View extends yii\\web\\View<\/span> {\n<\/span>\n    public $bodyId;\n<\/span>\n    \/* Yii allows you to add magic getter methods by prefacing method names with \"get\" *\/\n<\/span>\n    public function getBodyIdAttribute() {\n<\/span>        return ($this->bodyId != '') ? '' : '';\n<\/span>    }\n<\/span>\n}<\/span><\/pre>\n\n

          \n\n<\/p>テーブルの作成には、コマンドラインでコマンドを?qū)g行するだけです。\n\n

          
          

          国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

          BodyIdAttribute?><\/span><\/span>><\/span><\/span><\/pre>\n\n

          およびテーブルを削除するには:<\/p>\n\n

          return [\n<\/span>    \/\/ ...\n<\/span>    'components' => [\n<\/span>        \/\/ ...\n<\/span>        'view' => [\n<\/span>            'class' => 'app\\components\\View'\n<\/span>        ]   \n<\/span>    ]\n<\/span>];<\/span><\/pre>\n\n

          7。パフォーマンスの向上を簡(jiǎn)単に調(diào)整できます<\/p>\n

          return [\n<\/span>    'components' => [\n<\/span>        'mail' => [\n<\/span>            'useFileTransport' => true,\n<\/span>        ],\n<\/span>        'urlManager' => [\n<\/span>            'showScriptName' => true,\n<\/span>        ],\n<\/span>        'db' => [\n<\/span>                'dsn' => 'mysql:host=localhost;dbname=mysqldb_test',\n<\/span>        ],\n<\/span>    ],\n<\/span>];<\/span><\/pre>誰(shuí)もが、遅いウェブサイトが不満を抱いたユーザーを作成することを知っているので、YIIはアプリケーションからより多くの速度を絞るのに役立ついくつかのツールを提供します。\n

          すべてのYiiのキャッシュコンポーネントは、Yii\/キャッシュ\/キャッシュから拡張されているため、一般的なAPIの使用中に必要なキャッシュシステムを選択できます。複數(shù)のキャッシュコンポーネントを同時(shí)に登録することもできます。 YIIは現(xiàn)在、データベースとファイルシステムのキャッシュ、およびAPC、Memcache、Redis、Wincache、Xcache、Zendデータキャッシュをサポートしています。\n<\/p>デフォルトでは、アクティブレコードを使用している場(chǎng)合、YIIは追加クエリを?qū)g行してモデルの生成に伴うテーブルのスキーマを決定します。メイン構(gòu)成ファイルを次のように編集して、これらのスキーマをキャッシュするようにアプリケーションを設(shè)定できます。\n\n

          $I->amOnPage('register');\n<\/span>$I->fillField('username', 'testuser');\n<\/span>$I->fillField('password', 'qwerty');\n<\/span>$I->click('Register');\n<\/span>$I->seeRecord('app\\models\\User', array('name' => 'testuser'));<\/span><\/pre>\n\n

          最後に、Yiiには、フロントエンド資産の縮小を促進(jìn)するためのコマンドラインツールがあります。次のコマンドを?qū)g行して構(gòu)成テンプレートを生成するだけです。\n\n<\/h2>\n\n次に、構(gòu)成を編集して、どのツールを用き付けしているかを指定します(例:閉鎖コンパイラ、Yuiコンプレッサー、またはuglifyjsなど)。生成された構(gòu)成テンプレートは、次のようになります:

          \n\n<\/p>\n\n

          次に、圧縮を?qū)g行するためにこのコンソールコマンドを?qū)g行します。 <\/p>\n\n

          \n\n<\/p>そして最後に、圧縮された資産を使用するようにWebアプリケーション構(gòu)成ファイルを編集します。\n\n

          return [\n<\/span>        'components' => [\n<\/span>            'request' => [\n<\/span>                'enableCsrfValidation' => false,\n<\/span>            ]\n<\/span>    ];<\/span><\/pre>\n\n

          <\/p>メモ:

          use yii\\filters\\AccessControl<\/span>;\n<\/span>\nclass DefaultController extends Controller {\n<\/span>    \/\/ ...\n<\/span>    public function behaviors() {\n<\/span>        return [\n<\/span>            \/\/ ...\n<\/span>            'class' => AccessControl::<\/span>className(),\n<\/span>            'only' => ['create', 'login', 'view'],\n<\/span>                'rules' => [\n<\/span>                [\n<\/span>                    'allow' => true,\n<\/span>                    'actions' => ['login', 'view'],\n<\/span>                    'roles' => ['?']\n<\/span>                ],\n<\/span>                [\n<\/span>                    'allow' => true,\n<\/span>                    'actions' => ['create'],\n<\/span>                    'roles' => ['@']\n<\/span>                ]\n<\/span>            ]\n<\/span>        ];\n<\/span>    }\n<\/span>    \/\/ ...\n<\/span>}<\/span><\/pre>これらの外部ツールを手動(dòng)でダウンロードしてインストールする必要があります。

          <\/p>\n

          結(jié)論<\/h2>\n

          優(yōu)れたフレームワークと同様に、YIIは最新のWebアプリケーションを迅速に作成し、パフォーマンスがうまく機(jī)能するようにします。あなたのために多くの重い持ち上げを行うことにより、安全でテスト可能なサイトを作成するようになります。その機(jī)能のほとんどを提供したとおりに簡(jiǎn)単に使用することも、それぞれを変更してニーズに合わせて変更することもできます。次のWebプロジェクトのためにチェックすることを本當(dāng)にお?jiǎng)幛幛筏蓼梗?Yii 2を試しましたか?しますか?お知らせください!<\/p>\n

          \n\n\n\n<\/p>Yii 2フレームワークに関するよくある質(zhì)問(wèn)(FAQ)

          \n\n\n\n<\/h2> YII 2フレームワークが非常に拡張可能と見(jiàn)なされるのはなぜですか?

          <\/h3>YII 2フレームワークは、開(kāi)発者がコアのコードのほぼすべてのピースをカスタマイズできるため、非常に拡張可能であると考えられています。これは、開(kāi)発者がフレームワークが特定のタスクを処理する方法を調(diào)整する必要がある場(chǎng)合、コアコードを直接変更することなくそうすることができることを意味します。これは、高度な柔軟性と適応性を可能にし、特定のプロジェクト要件を満たすためにフレームワークを調(diào)整しやすくするため、重要な利點(diǎn)です。 > YII 2フレームワークは、効率的な怠zyなロード技術(shù)を通じて高性能を保証します。これは、特定のプロセスに必要なコンポーネントのみをロードし、サーバー上の負(fù)荷を削減し、アプリケーションの全體的なパフォーマンスを改善することを意味します。さらに、Yii 2はデータキャッシングもサポートしており、パフォーマンスをさらに向上させます。 。入力検証、出力フィルタリング、SQLインジェクション予防、およびクロスサイトスクリプト(XSS)予防のための組み込みツールを提供します。これらの機(jī)能により、機(jī)密データを処理する必要があるWebアプリケーションを開(kāi)発するための安全な選択肢があります。ツール、GII。 GIIを使用すると、開(kāi)発者はモデル、コントローラー、フォーム、モジュール、拡張機(jī)能のコードを迅速に生成できます。これにより、ボイラープレートコードの作成に必要な時(shí)間が大幅に短縮され、開(kāi)発者がビジネスロジックにもっと集中できるようになります。サードパーティのコードでシームレスに動(dòng)作するように設(shè)計(jì)されています。 Composer Dependency Managerを使用しているため、サードパーティライブラリとパッケージをYII 2アプリケーションに簡(jiǎn)単に統(tǒng)合できます。包括的なエラー処理およびロギングシステムがあります。 PHPエラーと例外の両方を処理でき、ファイル、電子メール、ブラウザーコンソールなど、さまざまなロギングターゲットを提供します。これにより、アプリケーションの問(wèn)題のデバッグと修正が簡(jiǎn)単になります。

          YII 2フレームワークは、複雑なWebアプリケーションの開(kāi)発に適していますか?<\/h3>\n

          はい、YII 2フレームワークは複雑なWebアプリケーションの開(kāi)発に適しています。 MVCアーキテクチャ、データベース抽象化レイヤー、キャッシュサポートなどのさまざまなツールと機(jī)能を提供します。これにより、複雑なアプリケーションの構(gòu)築と維持が容易になります。 <\/p> yii 2フレームワークは、國(guó)際化に対する広範(fàn)なサポート(I18N)を提供します。これには、日付と時(shí)刻のフォーマット、數(shù)字のフォーマット、メッセージの翻訳の機(jī)能が含まれており、グローバルな視聴者向けのアプリケーションの開(kāi)発が容易になります。 > yii 2フレームワークには、開(kāi)発者の大規(guī)模でアクティブなコミュニティがあります。多くのフォーラム、ブログ、チュートリアルがオンラインで入手できる場(chǎng)所で、ヘルプやアドバイスを見(jiàn)つけることができます。さらに、公式Y(jié)II Webサイトは包括的なドキュメントとユーザーガイドを提供します。パフォーマンス、セキュリティ機(jī)能、および拡張性。また、急速な発展をサポートしており、小規(guī)模および大規(guī)模なプロジェクトの両方に人気のある選択肢となっています。ただし、プロジェクトに最適なフレームワークは、開(kāi)発チームの特定の要件と専門(mén)知識(shí)に依存します。<\/li>\n<\/ul><\/suply>"}

          目次
          2。最新のテクノロジーを利用しています
          結(jié)論
          YII 2フレームワークは、複雑なWebアプリケーションの開(kāi)発に適していますか?
          ホームページ バックエンド開(kāi)発 PHPチュートリアル Yii 2フレームワークを選択する7つの理由

          Yii 2フレームワークを選択する7つの理由

          Feb 19, 2025 am 09:37 AM

          Yii 2フレームワークを選択する7つの理由

          昨年後半、SitePointは、PHPの上位フレームワークを強(qiáng)調(diào)する記事を公開(kāi)しました。 4番目のスポットで結(jié)ばれたのは、Yii(発音Yee )フレームワークでした。當(dāng)時(shí)、利用可能なフレームワークの最新バージョンは1.1.14でした。最近、YII 2.0が利用可能になったため、生産で使用し始めることができます。

          最近、RCステータスのときにそれをカバーしましたが、完全なリリースステータスに達(dá)しただけで、代替案よりも選択する理由でトピックを再訪する時(shí)が來(lái)たと感じています。

          キーテイクアウト

          YII 2フレームワークは簡(jiǎn)単にインストールでき、開(kāi)発者は簡(jiǎn)単なインストールと構(gòu)成プロセスで時(shí)間を節(jié)約し、Composerを使用して処理します。
            このフレームワークは、純粋なOOPフレームワークとして動(dòng)作し、後期靜的バインディング、SPLクラスとインターフェイス、匿名関數(shù)などの高度なPHP機(jī)能を活用して、最新のテクノロジーを利用しています。
          • yii 2は非常に拡張可能であり、フレームワークのほぼすべてのコンポーネントを特定のニーズに合わせてカスタマイズできるようにします。
          • フレームワークは、ユニット、機(jī)能、および受け入れテストの作成プロセスを簡(jiǎn)素化するPHPテストフレームワークであるCodeceptionと密接に統(tǒng)合されるテストを奨勵(lì)します。
          • YII 2セキュリティアプリケーションコンポーネントでセキュリティを簡(jiǎn)素化します。これにより、安全なアプリケーションの作成を支援するためのいくつかの方法が公開(kāi)されます。また、ユーザー認(rèn)証と承認(rèn)のためのすぐに使用できるクラスも含まれています。
          • 1。簡(jiǎn)単にインストールできます
          • Web開(kāi)発者の場(chǎng)合、時(shí)間はお金であり、複雑なインストールと構(gòu)成プロセスに貴重な時(shí)間を費(fèi)やしたい人はいません。
          • インストールは、Composerを使用して処理されます。インストールプロセスの説明が必要な場(chǎng)合は、SitePointが最近ここに素晴らしい記事を公開(kāi)しました。私のサイトに別のフロントエンドコンポーネントとバックエンドコンポーネントがある場(chǎng)合でも、基本的なアプリケーションテンプレートを使用することを好む傾向があります。代わりに、サイトのバックエンド部分にモジュールを使用することを選択します。 (YIIモジュールは、メインアプリケーション內(nèi)に存在するミニアプリケーションとして最もよく説明されています)。
          Note :後の例のディレクトリ參照の多くは、単純なテンプレートのディレクトリ構(gòu)造を使用しています。

          2。最新のテクノロジーを利用しています

          YIIは純粋なOOPフレームワークであり、後期靜的バインディング、SPLクラスとインターフェイス、匿名関數(shù)など、PHPのより高度な機(jī)能のいくつかを利用しています。

          すべてのクラスはNameSpacedであるため、PSR-4準(zhǔn)拠のオートローダーを利用できます。つまり、YiiのHTMLヘルパークラスを含めることは、次のように簡(jiǎn)単であることを意味します。

          また、

          yiiでは、エイリアスを定義して、名前空間を簡(jiǎn)素化するのに役立ちます。上記の例では、その使用ステートメントは、ディレクトリ/ベンダー/yiisoft/yii2/ヘルパーにデフォルトで配置されているクラス定義をロードします。 このエイリアスは、79行目のBaseYIIクラスで定義されています。

          <span>use yii<span>\helpers\Html</span>;</span>

          フレームワーク自體は、拡張機(jī)能と同様に、Composerを使用してインストールされます。拡張機(jī)能を公開(kāi)するプロセスでさえ、獨(dú)自のcomposer.jsonを作成し、githubでコードをホストし、拡張機(jī)能をパッケージストにリストするのと同じくらい簡(jiǎn)単です。

          3。非常に拡張可能

          yiiは、ラックから見(jiàn)えるスーツのようなものですが、ニーズに合わせて調(diào)整するのも非常に簡(jiǎn)単です。フレームワークのほぼすべてのコンポーネントが拡張可能です。簡(jiǎn)単な例は、あなたのビューにユニークなボディIDを追加することです。 (なぜこれをやりたいのかを知りたい場(chǎng)合は、この記事をご覧ください)。

          最初に、名前View.phpを使用してAppComponentsディレクトリにファイルを作成し、以下を追加します。

          次に、メインのレイアウトファイル(appviewslayoutsmain.php)で、htmlのボディタグに次のものを追加します:

          <span>public static $aliases = ['@yii' => __DIR__];</span>

          そして最後に、メイン構(gòu)成ファイルに次のことを追加して、Yiiに獨(dú)自のデフォルトではなく、拡張ビュークラスを使用するように知らせます:

          <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>

          4。テストを奨勵(lì)してください

          <span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>
          yiiはコード受容と厳密に統(tǒng)合されています。 Codeceptionは、アプリケーションのユニット、機(jī)能、受け入れテストの作成プロセスを簡(jiǎn)素化するのに役立つ優(yōu)れたPHPテストフレームワークです。すべてのアプリケーションの自動(dòng)テストを書(shū)いているからですよね?

          CodeCeption拡張により、テスト中にアプリケーションを簡(jiǎn)単に構(gòu)成できます。提供された/tests/_config.phpファイルを編集して、テストアプリケーションを構(gòu)成します。たとえば、

          この構(gòu)成を使用して、次のことが起こります

          <span>return [
          </span>    <span>// ...
          </span>    <span>'components' => [
          </span>        <span>// ...
          </span>        <span>'view' => [
          </span>            <span>'class' => 'app\components\View'
          </span>        <span>]   
          </span>    <span>]
          </span><span>];</span>
          機(jī)能テストと受け入れテスト中に送信されたメールは、送信される代わりにファイルに書(shū)き込まれます。

          テストのURLは、/コントローラー/アクションではなく、index.php/controller/actionの形式を使用します

            テストは、実稼働データベースではなく、テストデータベースを使用します。
          1. YIIフレームワークの特別なモジュールは、コード受信內(nèi)にも存在します。 TestGuyクラスにいくつかの方法を追加します。これは、機(jī)能テスト中にアクティブレコード(YIIのORM)を使用するのに役立ちます。たとえば、登録フォームがユーザー名「Testuser」を備えた新しいユーザーが正常に作成されたかどうかを確認(rèn)したい場(chǎng)合は、次のことを行うことができます。
          2. 5。セキュリティを簡(jiǎn)素化します
          3. セキュリティはあらゆるWebアプリケーションの重要な部分であり、幸いなことに、Yiiにはあなたの心を和らげるためのいくつかの素晴らしい機(jī)能があります。
          yiiには、より安全なアプリケーションの作成を支援するためにいくつかの方法を公開(kāi)するセキュリティアプリケーションコンポーネントが付屬しています。より便利な方法のいくつかは次のとおりです
          • GeneratePassWordHash:パスワードとランダム塩から安全なハッシュを生成します。この方法により、ランダム塩が作成され、PHPの暗號(hào)関數(shù)を使用して付屬の文字列からハッシュを作成します。
          • validatePassword:これは、generatepasswordhashのコンパニオン関數(shù)であり、ユーザーが提供したパスワードが保存されたハッシュと一致するかどうかを確認(rèn)できます。
          • Generaterandomkey:任意の長(zhǎng)さのランダムな文字列を作成できます
          • YIIは、すべての安全でないHTTPリクエストメソッド(put、post、削除)で有効なCSRFトークンを自動(dòng)的にチェックし、ActiveForm :: begin()メソッドを使用するとトークンを生成および出力します。この機(jī)能は、メイン構(gòu)成ファイルを編集して以下を含めることで無(wú)効にできます。

          XSSから保護(hù)するために、YIIはHTMLPurifierと呼ばれる別のヘルパークラスを提供します。このクラスには、プロセスという名前の単一の靜的メソッドがあり、同じ名前の一般的なフィルターライブラリを使用して出力をフィルタリングします。

          YIIには、ユーザー認(rèn)証と承認(rèn)のためのすぐに使用できるクラスも含まれています。 ACF(アクセス制御フィルター)とRBAC(ロールベースのアクセス制御)の2つのタイプに承認(rèn)が分かれています。
          <span>use yii<span>\helpers\Html</span>;</span>
          2つのうちの簡(jiǎn)単なのはACFであり、コントローラーの動(dòng)作方法に以下を追加することにより実裝されます。

          前述のコードは、DefaultControllertoでゲストユーザーがログインおよびビューアクションにアクセスできるようにしますが、作成アクションは作成されません。 (?匿名のユーザーのエイリアスは、 @は認(rèn)証されたユーザーを參照しています)。

          RBACは、アプリケーション全體で特定のアクションを?qū)g行できるユーザーを指定するより強(qiáng)力な方法です。ユーザーの役割を作成し、アプリの権限を定義し、意図した役割のそれらのアクセス許可を有効にすることが含まれます。モデレーターの役割を作成したい場(chǎng)合は、この方法を使用し、この役割に割り當(dāng)てられたすべてのユーザーが記事を承認(rèn)できるようにすることができます。

          RBACを使用してルールを定義することもできます。これにより、特定の條件下で、アプリケーションの特定の側(cè)面へのアクセスを許可することもできます。たとえば、ユーザーが自分の記事を編集できるようにするルールを作成できますが、他の記事は作成したものではありません。

          6。開(kāi)発時(shí)間を短縮
          <span>public static $aliases = ['@yii' => __DIR__];</span>

          ほとんどのプロジェクトには、時(shí)間を無(wú)駄にしたくない一定の繰り返しタスクが含まれます。 Yiiは、これらのタスクに費(fèi)やす時(shí)間を減らし、クライアントのニーズに合わせてアプリケーションをカスタマイズする時(shí)間を増やすのに役立ついくつかのツールを提供します。

          これらのツールの中で最も強(qiáng)力なものの1つは「GII」と呼ばれます。 GIIはWebベースのコード足場(chǎng)ツールであり、次のコードテンプレートをすばやく作成できます。

          モデル

          コントローラー

          forms

          モジュール

          拡張機(jī)能
          • CRUDコントローラーのアクションとビュー
          • giiは高度に構(gòu)成可能です。特定の環(huán)境でのみロードするように設(shè)定できます。次のようにWeb構(gòu)成ファイルを編集するだけです:
          • <span>use yii<span>\helpers\Html</span>;</span>
            これにより、GIIはYii環(huán)境変數(shù)が

            開(kāi)発に設(shè)定されている場(chǎng)合にのみロードされ、LocalHostを介してアクセスした場(chǎng)合にのみロードされることが保証されます。

            それでは、モデルジェネレーター:

            を見(jiàn)てみましょう

            Yii 2フレームワークを選択する7つの理由

            テーブル名はTypeaHeadウィジェットを使用して、モデルが関連付けられているテーブルを推測(cè)しようとし、すべてのフィールドにはロールオーバーツールチップがあり、それらを記入する方法を思い出させます。 GIIに生成するように依頼する前にコードをプレビューできます。すべてのコードテンプレートは完全にカスタマイズ可能です。 また、データベース移行のコードテンプレート、メッセージ翻訳(I18N)、および自動(dòng)テスト用のデータベース固定具を作成するのに役立つコマンドラインツールもいくつかあります。たとえば、このコマンドを使用して新しいデータベース移行ファイルを作成できます。

            これにより、{appdir}/移行に新しい移行テンプレートが作成されます。

            このテーブルにいくつかの列を追加したかったとしましょう。 UPメソッドに次のことを追加するだけです:
            <span>public static $aliases = ['@yii' => __DIR__];</span>

            そして、移行を逆転させることができることを確認(rèn)するために、ダウンメソッドを編集します:
            <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>

            テーブルの作成には、コマンドラインでコマンドを?qū)g行するだけです。
            <span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>

            およびテーブルを削除するには:

            <span>return [
            </span>    <span>// ...
            </span>    <span>'components' => [
            </span>        <span>// ...
            </span>        <span>'view' => [
            </span>            <span>'class' => 'app\components\View'
            </span>        <span>]   
            </span>    <span>]
            </span><span>];</span>

            7。パフォーマンスの向上を簡(jiǎn)単に調(diào)整できます

            <span>return [
            </span>    <span>'components' => [
            </span>        <span>'mail' => [
            </span>            <span>'useFileTransport' => true,
            </span>        <span>],
            </span>        <span>'urlManager' => [
            </span>            <span>'showScriptName' => true,
            </span>        <span>],
            </span>        <span>'db' => [
            </span>                <span>'dsn' => 'mysql:host=localhost;dbname=mysqldb_test',
            </span>        <span>],
            </span>    <span>],
            </span><span>];</span>
            誰(shuí)もが、遅いウェブサイトが不満を抱いたユーザーを作成することを知っているので、YIIはアプリケーションからより多くの速度を絞るのに役立ついくつかのツールを提供します。

            すべてのYiiのキャッシュコンポーネントは、Yii/キャッシュ/キャッシュから拡張されているため、一般的なAPIの使用中に必要なキャッシュシステムを選択できます。複數(shù)のキャッシュコンポーネントを同時(shí)に登録することもできます。 YIIは現(xiàn)在、データベースとファイルシステムのキャッシュ、およびAPC、Memcache、Redis、Wincache、Xcache、Zendデータキャッシュをサポートしています。

            デフォルトでは、アクティブレコードを使用している場(chǎng)合、YIIは追加クエリを?qū)g行してモデルの生成に伴うテーブルのスキーマを決定します。メイン構(gòu)成ファイルを次のように編集して、これらのスキーマをキャッシュするようにアプリケーションを設(shè)定できます。
            <span>$I->amOnPage('register');
            </span><span>$I->fillField('username', 'testuser');
            </span><span>$I->fillField('password', 'qwerty');
            </span><span>$I->click('Register');
            </span><span>$I->seeRecord('app\models\User', array('name' => 'testuser'));</span>

            最後に、Yiiには、フロントエンド資産の縮小を促進(jìn)するためのコマンドラインツールがあります。次のコマンドを?qū)g行して構(gòu)成テンプレートを生成するだけです。

            次に、構(gòu)成を編集して、どのツールを用き付けしているかを指定します(例:閉鎖コンパイラ、Yuiコンプレッサー、またはuglifyjsなど)。生成された構(gòu)成テンプレートは、次のようになります:

            次に、圧縮を?qū)g行するためにこのコンソールコマンドを?qū)g行します。

            そして最後に、圧縮された資産を使用するようにWebアプリケーション構(gòu)成ファイルを編集します。
            <span>return [
            </span>        <span>'components' => [
            </span>            <span>'request' => [
            </span>                <span>'enableCsrfValidation' => false,
            </span>            <span>]
            </span>    <span>];</span>

            メモ:
            <span>use yii<span>\filters\AccessControl</span>;
            </span>
            <span>class DefaultController extends Controller {
            </span>    <span>// ...
            </span>    <span>public function behaviors() {
            </span>        <span>return [
            </span>            <span>// ...
            </span>            <span>'class' => AccessControl<span>::</span>className(),
            </span>            <span>'only' => ['create', 'login', 'view'],
            </span>                <span>'rules' => [
            </span>                <span>[
            </span>                    <span>'allow' => true,
            </span>                    <span>'actions' => ['login', 'view'],
            </span>                    <span>'roles' => ['?']
            </span>                <span>],
            </span>                <span>[
            </span>                    <span>'allow' => true,
            </span>                    <span>'actions' => ['create'],
            </span>                    <span>'roles' => ['@']
            </span>                <span>]
            </span>            <span>]
            </span>        <span>];
            </span>    <span>}
            </span>    <span>// ...
            </span><span>}</span>
            これらの外部ツールを手動(dòng)でダウンロードしてインストールする必要があります。

            結(jié)論

            優(yōu)れたフレームワークと同様に、YIIは最新のWebアプリケーションを迅速に作成し、パフォーマンスがうまく機(jī)能するようにします。あなたのために多くの重い持ち上げを行うことにより、安全でテスト可能なサイトを作成するようになります。その機(jī)能のほとんどを提供したとおりに簡(jiǎn)単に使用することも、それぞれを変更してニーズに合わせて変更することもできます。次のWebプロジェクトのためにチェックすることを本當(dāng)にお?jiǎng)幛幛筏蓼梗?Yii 2を試しましたか?しますか?お知らせください!

            Yii 2フレームワークに関するよくある質(zhì)問(wèn)(FAQ)

            YII 2フレームワークが非常に拡張可能と見(jiàn)なされるのはなぜですか?

            YII 2フレームワークは、開(kāi)発者がコアのコードのほぼすべてのピースをカスタマイズできるため、非常に拡張可能であると考えられています。これは、開(kāi)発者がフレームワークが特定のタスクを処理する方法を調(diào)整する必要がある場(chǎng)合、コアコードを直接変更することなくそうすることができることを意味します。これは、高度な柔軟性と適応性を可能にし、特定のプロジェクト要件を満たすためにフレームワークを調(diào)整しやすくするため、重要な利點(diǎn)です。 > YII 2フレームワークは、効率的な怠zyなロード技術(shù)を通じて高性能を保証します。これは、特定のプロセスに必要なコンポーネントのみをロードし、サーバー上の負(fù)荷を削減し、アプリケーションの全體的なパフォーマンスを改善することを意味します。さらに、Yii 2はデータキャッシングもサポートしており、パフォーマンスをさらに向上させます。 。入力検証、出力フィルタリング、SQLインジェクション予防、およびクロスサイトスクリプト(XSS)予防のための組み込みツールを提供します。これらの機(jī)能により、機(jī)密データを処理する必要があるWebアプリケーションを開(kāi)発するための安全な選択肢があります。ツール、GII。 GIIを使用すると、開(kāi)発者はモデル、コントローラー、フォーム、モジュール、拡張機(jī)能のコードを迅速に生成できます。これにより、ボイラープレートコードの作成に必要な時(shí)間が大幅に短縮され、開(kāi)発者がビジネスロジックにもっと集中できるようになります。サードパーティのコードでシームレスに動(dòng)作するように設(shè)計(jì)されています。 Composer Dependency Managerを使用しているため、サードパーティライブラリとパッケージをYII 2アプリケーションに簡(jiǎn)単に統(tǒng)合できます。包括的なエラー処理およびロギングシステムがあります。 PHPエラーと例外の両方を処理でき、ファイル、電子メール、ブラウザーコンソールなど、さまざまなロギングターゲットを提供します。これにより、アプリケーションの問(wèn)題のデバッグと修正が簡(jiǎn)単になります。

            YII 2フレームワークは、複雑なWebアプリケーションの開(kāi)発に適していますか?

            はい、YII 2フレームワークは複雑なWebアプリケーションの開(kāi)発に適しています。 MVCアーキテクチャ、データベース抽象化レイヤー、キャッシュサポートなどのさまざまなツールと機(jī)能を提供します。これにより、複雑なアプリケーションの構(gòu)築と維持が容易になります。

            yii 2フレームワークは、國(guó)際化に対する広範(fàn)なサポート(I18N)を提供します。これには、日付と時(shí)刻のフォーマット、數(shù)字のフォーマット、メッセージの翻訳の機(jī)能が含まれており、グローバルな視聴者向けのアプリケーションの開(kāi)発が容易になります。 > yii 2フレームワークには、開(kāi)発者の大規(guī)模でアクティブなコミュニティがあります。多くのフォーラム、ブログ、チュートリアルがオンラインで入手できる場(chǎng)所で、ヘルプやアドバイスを見(jiàn)つけることができます。さらに、公式Y(jié)II Webサイトは包括的なドキュメントとユーザーガイドを提供します。パフォーマンス、セキュリティ機(jī)能、および拡張性。また、急速な発展をサポートしており、小規(guī)模および大規(guī)模なプロジェクトの両方に人気のある選択肢となっています。ただし、プロジェクトに最適なフレームワークは、開(kāi)発チームの特定の要件と専門(mén)知識(shí)に依存します。

          以上がYii 2フレームワークを選択する7つの理由の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

          このウェブサイトの聲明
          この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

          ホットAIツール

          Undress AI Tool

          Undress AI Tool

          脫衣畫(huà)像を無(wú)料で

          Undresser.AI Undress

          Undresser.AI Undress

          リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

          AI Clothes Remover

          AI Clothes Remover

          寫(xiě)真から衣服を削除するオンライン AI ツール。

          Clothoff.io

          Clothoff.io

          AI衣類(lèi)リムーバー

          Video Face Swap

          Video Face Swap

          完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

          ホットツール

          メモ帳++7.3.1

          メモ帳++7.3.1

          使いやすく無(wú)料のコードエディター

          SublimeText3 中國(guó)語(yǔ)版

          SublimeText3 中國(guó)語(yǔ)版

          中國(guó)語(yǔ)版、とても使いやすい

          ゼンドスタジオ 13.0.1

          ゼンドスタジオ 13.0.1

          強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

          ドリームウィーバー CS6

          ドリームウィーバー CS6

          ビジュアル Web 開(kāi)発ツール

          SublimeText3 Mac版

          SublimeText3 Mac版

          神レベルのコード編集ソフト(SublimeText3)

          PHPベースのAPIをバージョン化するためのベストプラクティスは何ですか? PHPベースのAPIをバージョン化するためのベストプラクティスは何ですか? Jun 14, 2025 am 12:27 AM

          Toversionaphp Basedificefectivivivity、useurl Basedversioning forclarity-andeaseaseasedease、depateversionedcodetoavoidconflicts、deprecateoldversions withclearcommunication、andconsider-customheadersally whendary.starttheversionionintheurl(e.g。、/api/v

          PHPに認(rèn)証と承認(rèn)を?qū)g裝するにはどうすればよいですか? PHPに認(rèn)証と承認(rèn)を?qū)g裝するにはどうすればよいですか? Jun 20, 2025 am 01:03 AM

          tosecurelyhandLeauthenticationAndauthorizationInizationInization、followTheSteps:1.LwayShashPasswordswithPassword_hash()andverifyusingpassword_verify()、usepreparedStatementStatementStatementStatementStatementStain、andstoreUserdatain $ _SessionAfterlogin.2.implementRementRementRementRementRementRementRementRole

          PHPにおける手続き型とオブジェクト指向のプログラミングパラダイムの違いは何ですか? PHPにおける手続き型とオブジェクト指向のプログラミングパラダイムの違いは何ですか? Jun 14, 2025 am 12:25 AM

          ProceduralAndObject-OrientedProgramming(OOP)InphpdifferSifically-datability、andDatahandling.1.proceduralprogramsessusessuseSideSized funized、surtableforsmallscript.2.ooporganizescodeIntoclassesandobjects、ModelingReal-worden

          PHPの弱い參照(WeakMap)とは何ですか? PHPの弱い參照(WeakMap)とは何ですか? Jun 14, 2025 am 12:25 AM

          phpdoesnothaveabuiltinweakmapbutofferswutreferenceforsimilarfunctionality.1.weakreferenceallowsholdingReferences withoutpreventinggarbagecollectrection.2.itisusfulfurcaching、eventlisteners、およびmetadatawithectingovecting objectinimulatea

          PHPでファイルアップロードを安全に処理するにはどうすればよいですか? PHPでファイルアップロードを安全に処理するにはどうすればよいですか? Jun 19, 2025 am 01:05 AM

          PHPでファイルアップロードを安全に処理するために、コアはファイルタイプを確認(rèn)し、ファイルの名前を変更し、権限を制限することです。 1。Finfo_File()を使用して実際のMIMEタイプを確認(rèn)し、Image/JPEGなどの特定のタイプのみが許可されます。 2。uniqid()を使用してランダムファイル名を生成し、非webルートディレクトリに保存します。 3. PHP.iniおよびHTMLフォームを介してファイルサイズを制限し、ディレクトリ権限を0755に設(shè)定します。 4. Clamavを使用してマルウェアをスキャンしてセキュリティを強(qiáng)化します。これらの手順は、セキュリティの脆弱性を効果的に防止し、ファイルのアップロードプロセスが安全で信頼性が高いことを確認(rèn)します。

          PHPの==(ゆるい比較)と===(厳密な比較)の違いは何ですか? PHPの==(ゆるい比較)と===(厳密な比較)の違いは何ですか? Jun 19, 2025 am 01:07 AM

          PHPでは、==と==の主な違いは、タイプチェックの厳格さです。 ==タイプ変換は比較の前に実行されます。たとえば、5 == "5"はtrueを返します。===リクエストは、trueが返される前に値とタイプが同じであることを要求します。たとえば、5 === "5"はfalseを返します。使用シナリオでは、===はより安全で、最初に使用する必要があります。==は、タイプ変換が必要な場(chǎng)合にのみ使用されます。

          PHPのNOSQLデータベース(Mongodb、Redisなど)とどのように対話できますか? PHPのNOSQLデータベース(Mongodb、Redisなど)とどのように対話できますか? Jun 19, 2025 am 01:07 AM

          はい、PHPは、特定の拡張機(jī)能またはライブラリを使用して、MongoDBやRedisなどのNOSQLデータベースと対話できます。まず、MongoDBPHPドライバー(PECLまたはComposerを介してインストール)を使用して、クライアントインスタンスを作成し、データベースとコレクションを操作し、挿入、クエリ、集約、その他の操作をサポートします。第二に、PredisライブラリまたはPhpredis拡張機(jī)能を使用してRedisに接続し、キー価値設(shè)定と取得を?qū)g行し、高性能シナリオにPhpredisを推奨しますが、Predisは迅速な展開(kāi)に便利です。どちらも生産環(huán)境に適しており、十分に文書(shū)化されています。

          PHP(、 - 、 *、 /、%)で算術(shù)操作を?qū)g行するにはどうすればよいですか? PHP(、 - 、 *、 /、%)で算術(shù)操作を?qū)g行するにはどうすればよいですか? Jun 19, 2025 pm 05:13 PM

          PHPで基本的な數(shù)學(xué)操作を使用する方法は次のとおりです。1。追加標(biāo)識(shí)は、整數(shù)と浮動(dòng)小數(shù)點(diǎn)數(shù)をサポートし、変數(shù)にも使用できます。文字列番號(hào)は自動(dòng)的に変換されますが、依存関係には推奨されません。 2。減算標(biāo)識(shí)の使用 - 標(biāo)識(shí)、変數(shù)は同じであり、タイプ変換も適用されます。 3.乗算サインは、數(shù)字や類(lèi)似の文字列に適した標(biāo)識(shí)を使用します。 4.分割はゼロで割らないようにする必要がある分割 /標(biāo)識(shí)を使用し、結(jié)果は浮動(dòng)小數(shù)點(diǎn)數(shù)である可能性があることに注意してください。 5.モジュラス標(biāo)識(shí)を採(cǎi)取することは、奇妙な數(shù)と偶數(shù)を判斷するために使用でき、負(fù)の數(shù)を処理する場(chǎng)合、殘りの兆候は配當(dāng)と一致しています。これらの演算子を正しく使用するための鍵は、データ型が明確であり、境界の狀況がうまく処理されるようにすることです。

          See all articles