<acronym id="g2byk"><rt id="g2byk"></rt></acronym>
    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在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

          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衣類リムーバー

          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)

          パスワード強(qiáng)度のPHP Regex パスワード強(qiáng)度のPHP Regex Jul 03, 2025 am 10:33 AM

          パスワードの強(qiáng)度を判斷するには、定期的な処理と論理処理を組み合わせる必要があります?;镜膜室摔弦韵陇蓼欷蓼?。1。長(zhǎng)さは8桁以上です。 2。少なくとも小文字、大文字、および數(shù)字を含む。 3。特別な文字制限を追加できます。高度な側(cè)面に関しては、文字の継続的な重複と漸進(jìn)的/減少シーケンスを避ける必要があります。これには、PHP機(jī)能検出が必要です。同時(shí)に、ブラックリストを?qū)毪筏啤ⅴ靴攻铹`ドや123456などの一般的な弱いパスワードをフィルタリングする必要があります。最後に、評(píng)価の精度を向上させるためにZXCVBNライブラリを組み合わせることをお?jiǎng)幛幛筏蓼埂?/p>

          PHP変數(shù)スコープは説明されています PHP変數(shù)スコープは説明されています Jul 17, 2025 am 04:16 AM

          PHP変數(shù)スコープの一般的な問(wèn)題とソリューションには次のものが含まれます。1。グローバル変數(shù)は関數(shù)內(nèi)でアクセスできず、グローバルキーワードまたはパラメーターを使用して渡す必要があります。 2。靜的変數(shù)は靜的で宣言され、1回のみ初期化され、値は複數(shù)の呼び出し間で維持されます。 3. $ _GETや$ _POSTなどのハイパーグローバル変數(shù)は、任意の範(fàn)囲で直接使用できますが、安全なフィルタリングに注意を払う必要があります。 4.匿名関數(shù)は、使用キーワードを使用して親スコープ変數(shù)を?qū)毪工氡匾ⅳ?、外部変?shù)を変更する場(chǎng)合は、參照を渡す必要があります。これらのルールを習(xí)得すると、エラーを回避し、コードの安定性が向上するのに役立ちます。

          ファイルアップロードをPHPで安全に処理する方法は? ファイルアップロードをPHPで安全に処理する方法は? Jul 08, 2025 am 02:37 AM

          PHPファイルのアップロードを安全に処理するには、ソースとタイプを確認(rèn)し、ファイル名とパスを制御し、サーバー制限を設(shè)定し、メディアファイルを2回プロセスする必要があります。 1.トークンを介してCSRFを防ぐためにアップロードソースを確認(rèn)し、ホワイトリストコントロールを使用してFINFO_FILEを介して実際のMIMEタイプを検出します。 2。ファイルをランダムな文字列に変更し、検出タイプに従って非WEBディレクトリに保存する拡張機(jī)能を決定します。 3。PHP構(gòu)成は、アップロードサイズを制限し、一時(shí)的なディレクトリnginx/apacheはアップロードディレクトリへのアクセスを禁止します。 4. GDライブラリは寫(xiě)真を再利用して、潛在的な悪意のあるデータをクリアします。

          PHPでコードをコメントします PHPでコードをコメントします Jul 18, 2025 am 04:57 AM

          PHPコメントコードには3つの一般的な方法があります。1。//#を使用して1行のコードをブロックすると、//を使用することをお?jiǎng)幛幛筏蓼埂?2。使用/.../複數(shù)の行でコードブロックをラップするには、ネストすることはできませんが交差することができます。 3. / if(){}を使用するなどの組み合わせスキルコメントロジックブロックを制御するか、エディターショートカットキーで効率を改善するには、シンボルを閉じることに注意を払い、使用時(shí)にネストを避ける必要があります。

          発電機(jī)はPHPでどのように機(jī)能しますか? 発電機(jī)はPHPでどのように機(jī)能しますか? Jul 11, 2025 am 03:12 AM

          ageneratorinphpisamemory-efficientwaytoateate-overdeatatasetasetasetasetsinging valueseintimeintimeturningthemallatonce.1.generatorsususedeywordproducevaluesedemand、memoryusage.2を還元すること。2

          PHPコメントを書(shū)くためのヒント PHPコメントを書(shū)くためのヒント Jul 18, 2025 am 04:51 AM

          PHPコメントを書(shū)くための鍵は、目的と仕様を明確にすることです。コメントは、「何が行われたのか」ではなく「なぜ」を説明する必要があり、冗長(zhǎng)性や単純さを避けてください。 1.読みやすさとツールの互換性を向上させるために、クラスおよびメソッドの説明にdocblock(/*/)などの統(tǒng)合形式を使用します。 2。JSジャンプを手動(dòng)で出力する必要がある理由など、ロジックの背後にある理由を強(qiáng)調(diào)します。 3.複雑なコードの前に概要説明を追加し、手順でプロセスを説明し、全體的なアイデアを理解するのに役立ちます。 4. TodoとFixmeを合理的に使用して、To Doアイテムと問(wèn)題をマークして、その後の追跡とコラボレーションを促進(jìn)します。優(yōu)れた注釈は、通信コストを削減し、コードメンテナンスの効率を向上させることができます。

          クイックPHPインストールチュートリアル クイックPHPインストールチュートリアル Jul 18, 2025 am 04:52 AM

          to installphpquickly、usexampponwindowsorhomebrewonmacos.1.onwindows、downloadandinstallxampp、selectcomponents、startapache、andplacefilesinhtdocs.2

          PHPの學(xué)習(xí):初心者向けガイド PHPの學(xué)習(xí):初心者向けガイド Jul 18, 2025 am 04:54 AM

          tolearnphpefctivially、startbysettingupalocalserverenvironmentusingtoolslikexamppandacodeeditorlikevscode.1)instalxamppforapa Che、mysql、andphp.2)useocodeeditorforsyntaxsupport.3)testyoursetup withasimplephpfile.next、Learnpbasicsincludingvariables、ech

          See all articles