亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
マイナー【PHPフレームワーク】3. ルーティング、コントローラー、ビュー、マイナーフレームワーク
ホームページ バックエンド開発 PHPチュートリアル マイナー [PHP フレームワーク] 3. ルーティング、コントローラー、ビュー、マイナー フレームワーク_PHP チュートリアル

マイナー [PHP フレームワーク] 3. ルーティング、コントローラー、ビュー、マイナー フレームワーク_PHP チュートリアル

Jul 12, 2016 am 08:49 AM
PHPフレームワーク

マイナー【PHPフレームワーク】3. ルーティング、コントローラー、ビュー、マイナーフレームワーク

3.1 ルーティング

本格的な Web アプリケーションには美しい URL が絶対に必要です。こうすることで、index.php?article_id=57 のような醜い URL が非表示になり、/read/intro-to-symfony のようなより一般的な URL に置き換えられます。

3.1.1 ルーティング設(shè)定

設(shè)定ファイルはapp/Config/routes.phpです

リーリー

上記のコードを例として、エレガントな (laravel 病...) ルーティングを構(gòu)成する方法を詳しく説明します

「/demo/{productName}」は、ルーティングの一致ルールです。構(gòu)成內(nèi)の required は、productName が満たさなければならない正規(guī)の條件を指定します。フレームワークの実際の動(dòng)作中に、ルーティング ルール + required が正規(guī)表現(xiàn)に解析されます。 /demo /(w+) 、URL (例: xxx.xxx.xxx/demo/testproduct) がこの通常のルールに一致すると、構(gòu)成內(nèi)のコントローラーのアクションが実行されます。具體的な実行は次のとおりです。 FooController->bar ($製品名) ;

ルーティング ルールの中括弧 (productName) の內(nèi)容が bar メソッドのパラメーターであることがわかります。したがって、ルートを照合するときは、ルーティング ルールが特定のコントローラー メソッドのパラメーターの數(shù)と一致している必要があることに注意してください。一致しないと、ControllerException がスローされます。

3.1.2 デフォルトのルーティング設(shè)定

Controllerを定義するたびにルートを設(shè)定しなければならないと、開発効率の低下につながります。この問題の発生を防ぐために、Minorではデフォルトのルーティング機(jī)構(gòu)が提供されています。 http://xxx.xxx.xxx/demo/foo/bar にアクセスすると、AppModulesDemoFooController の bar メソッドが実行されます。つまり、デフォルト ルートは次のとおりです。

http://xxx.xxx.xxx/{モジュール名}/{コントローラ名}/{メソッド名}

3.1.3 デメリット ご覧のとおり、マイナーのルーティングは強(qiáng)力ではありません。リクエストメソッドの制限、HTTPS の制限、およびフィルターはサポートされていません。

3.2コントローラー

3.2.1 獨(dú)自のコントローラーを作成する Controllerの定義は非常にシンプルで、MinorControllerControllerの基底クラスを継承するだけです(もちろん継承する必要はありませんが、基底クラス內(nèi)のメソッドやプロパティは使えないのでわかりやすいです)。 app/Modules/Demo/Controller/ フォルダーに移動(dòng)し、ファイル FooController.php:

を作成します。 リーリー

xxx.xxx.xxx/demo/foo/bar (デフォルトルート、獨(dú)自ルート設(shè)定も可能) にアクセスすると、Hello World が返されることがわかります。

3.2.2 URL生成 Url の gen メソッドを呼び出すと、デフォルトのパスをルーティング ルールに準(zhǔn)拠した URL に変換できます

リーリー

3.1.1のルーティングに従ってUrl::gen('/demo/foo/bar?productName=test')が設(shè)定されている場合、/demo/testが返されます。

3.2.3 ページジャンプリダイレクト、リダイレクトフォワード Minor には、redirect、forward、forwardUrl という 3 つのジャンプ メソッドが用意されています (これら 3 つは、MinorControllerController の保護(hù)されたメソッドです)。

別の URL にジャンプするときは、コントローラーで次のように呼び出すことができます: $this->redirect($url);

別の URL にリダイレクトする場合、コントローラー內(nèi)で次のように呼び出すことができます: $this->forwardUrl($url); (このメソッドの実裝は、実際にはルーティングと URL リクエストのコントローラーとメソッドを解析することです)それから forward($controller, $action, $param)) を呼び出します

別のメソッドに転送する場合、コントローラー內(nèi)で次のように呼び出すことができます: $this->forward($controller, $action, $params); (パラメーター $controller は、名前空間を含むコントローラーのクラス名です。 )

例:

リーリー

3.2.4 リクエストパラメータの取得 MinorRequest の get($paramName, $defaultParamValue = null) メソッドまたは post($paramName, $defaultParamValue = null) メソッドを呼び出して、リクエスト メソッドを取得します。

コントローラー內(nèi)で次のように呼び出すことができます。 リーリー

3.2.5 リクエストメソッドの取得 MinorRequest の getMethod() メソッドを呼び出して、要求されたメソッドを取得します。 リーリー

3.3 ビュー

Minor は非常に強(qiáng)力なテンプレート エンジンを提供します。このテンプレート エンジンの名前は PHP です。はい!そうですよね、PHP。なぜマイナーはsmartyやTwigのようなテンプレートエンジンを提供しないのでしょうか? 必要がないので、PHP 自體で十分です。Minor がテンプレート エンジンを構(gòu)築すると、間違いなく、Minor を使用するのが難しくなります。そのため、Minor は、ビュー ファイルの言語として PHP を直接使用します。

3.3.1 コントローラーでのビューの使用

コントローラーでビューを使用するには、 View::render('モジュール名:コントローラー名:ビューファイル名', ['param1key' => 'param1value', 'param2key' => 'param2value' を呼び出すだけです。 . .]); 例:

<span>class</span> FooController <span>extends</span><span> Controller
{
    </span><span>public</span> <span>function</span><span> bar()
    {
        </span><span>$param1</span> = 'Hello'<span>;
        </span><span>$param2</span> = 'World'<span>; 
        </span><span>return</span> View::render('Demo:Foo:bar.php', ['param1' => <span>$param1</span>, 'param2' => <span>$param2</span><span>]);
    }
}  </span>

  render函數(shù)的第二個(gè)參數(shù)(['param1key' => 'param1value', 'param2key' => 'param2value' ...])就是向視圖文件中傳遞的變量,我們可以在視圖文件中使用這些變量:

文件:app/Modules/Demo/Controller/Tpl/Foo/bar.php<br /><?php echo $param1key;?><br /><?=$param2key ?>

  3.3.2 視圖內(nèi)置函數(shù)

  Minor提供了兩個(gè)視圖文件中可以使用的函數(shù):

<span>function</span> include_tpl(<span>$module</span>, <span>$controller</span>, <span>$tpl</span><span>)
{
    </span><span>require_once</span> (!<span>defined</span>('APP_DIR') ? APP_DIR : <span>realpath</span>(__DIR__ . '/../../app/') .DIRECTORY_SEPARATOR) . 'Modules' . '/' . <span>$module</span> . '/Tpl/' . <span>$controller</span> . '/' . <span>$tpl</span><span>;
}

</span><span>function</span> url(<span>$path</span><span>)
{
    </span><span>return</span> Url::gen(<span>$path</span><span>);
}</span>

  使用:

<span>html>   
    </span><span><?</span><span>php include_tpl('Public', 'Public', 'header.php');</span><span>?></span> 
    <span><</span><span>body</span><span>></span>
        <span><</span><span>h1</span><span>></span>Hello!<span></</span><span>h1</span><span>></span>
        <span><</span><span>a </span><span>href</span><span>="<?php url('/demo/foo/bar?productName=testpro');?>"</span><span>></span>
    <span></</span><span>body</span><span>></span>
<span></</span><span>html</span><span>></span>

  這兩個(gè)函數(shù)定義在app/Resource/functions.php文件中,你可以在這個(gè)文件中自定義你需要的視圖函數(shù)。

 

3.4 響應(yīng)

  可以在控制器中通過調(diào)用App對象的getMinorResponse()方法來獲取當(dāng)前MinorResponse對象?!inorResponse類提供了六個(gè)方法分別是:

<span>public function send(); // 用于將響應(yīng)對象發(fā)送給客戶端

public function setHeader($header);// 設(shè)置響應(yīng)頭

public function setContent($content); // 設(shè)置響應(yīng)對象的內(nèi)容

public function beforeContent($content); // 在當(dāng)前已有的內(nèi)容之前添加內(nèi)容

public function appendContent($content); // 在當(dāng)前已有內(nèi)容之后追加內(nèi)容

public function getContent(); // 獲取對象中的響應(yīng)內(nèi)容</span>

?

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1135100.htmlTechArticleMinor【 PHP框架】3.路由、控制器、視圖,minor框架 3.1 路由 漂亮的URL絕對是一個(gè)嚴(yán)肅的web應(yīng)用程序必須做到的,這種方式使index.php?article_id...
このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP フレームワークの長所と短所の比較: どちらが優(yōu)れていますか? PHP フレームワークの長所と短所の比較: どちらが優(yōu)れていますか? Jun 04, 2024 pm 03:36 PM

PHP フレームワークの選択は、プロジェクトのニーズと開発者のスキルによって異なります。 Laravel: 豊富な機(jī)能と活発なコミュニティがありますが、學(xué)習(xí)曲線が急で、パフォーマンスのオーバーヘッドが高くなります。 CodeIgniter: 軽量で拡張が簡単ですが、機(jī)能が制限されており、ドキュメントが少なくなります。 Symfony: モジュール式の強(qiáng)力なコミュニティですが、複雑なパフォーマンスの問題があります。 ZendFramework: エンタープライズ グレードで、安定性と信頼性が高くなりますが、ライセンスが大きく高価です。スリム: マイクロフレームワークで高速ですが、機(jī)能が限られており、學(xué)習(xí)曲線が急です。

異なる開発環(huán)境における PHP フレームワークのパフォーマンスの違い 異なる開発環(huán)境における PHP フレームワークのパフォーマンスの違い Jun 05, 2024 pm 08:57 PM

開発環(huán)境が異なると、PHP フレームワークのパフォーマンスに違いがあります。開発環(huán)境 (ローカル Apache サーバーなど) は、ローカル サーバーのパフォーマンスの低下やデバッグ ツールなどの要因により、フレームワークのパフォーマンスの低下に悩まされます。対照的に、より強(qiáng)力なサーバーと最適化された構(gòu)成を備えた実稼働環(huán)境 (完全に機(jī)能する実稼働サーバーなど) では、フレームワークのパフォーマンスが大幅に向上します。

PHP フレームワークとマイクロサービス: クラウド ネイティブの導(dǎo)入とコンテナ化 PHP フレームワークとマイクロサービス: クラウド ネイティブの導(dǎo)入とコンテナ化 Jun 04, 2024 pm 12:48 PM

PHP フレームワークとマイクロサービスを組み合わせる利點(diǎn): スケーラビリティ: アプリケーションを簡単に拡張し、新しい機(jī)能を追加したり、より多くの負(fù)荷を処理したりできます。柔軟性: マイクロサービスは獨(dú)立してデプロイおよび保守されるため、変更や更新が容易になります。高可用性: 1 つのマイクロサービスの障害が他の部分に影響を與えないため、高可用性が確保されます。実踐的なケース: Laravel と Kubernetes を使用したマイクロサービスのデプロイ ステップ: Laravel プロジェクトを作成します。マイクロサービスコントローラーを定義します。 Dockerfileを作成します。 Kubernetes マニフェストを作成します。マイクロサービスをデプロイします。マイクロサービスをテストします。

PHP フレームワークと DevOps の統(tǒng)合: 自動(dòng)化と俊敏性の未來 PHP フレームワークと DevOps の統(tǒng)合: 自動(dòng)化と俊敏性の未來 Jun 05, 2024 pm 09:18 PM

PHP フレームワークと DevOps を統(tǒng)合すると、効率と機(jī)敏性が向上します。退屈なタスクを自動(dòng)化し、人員を解放して戦略的タスクに集中させ、リリース サイクルを短縮し、市場投入までの時(shí)間を短縮し、コード品質(zhì)を向上させ、エラーを削減し、部門間のチームのコラボレーションを強(qiáng)化し、ブレークダウンを?qū)g現(xiàn)します。開発と運(yùn)用のサイロ化

PHP フレームワークと人工知能: 開発者ガイド PHP フレームワークと人工知能: 開発者ガイド Jun 04, 2024 pm 12:47 PM

PHP フレームワークを使用して人工知能 (AI) を統(tǒng)合し、Web アプリケーションへの AI の統(tǒng)合を簡素化します。 推奨フレームワーク: Laravel: 軽量、効率的、強(qiáng)力です。 CodeIgniter: シンプルで使いやすく、小規(guī)模なアプリケーションに適しています。 ZendFramework: 完全な機(jī)能を備えたエンタープライズ レベルのフレームワーク。 AI 統(tǒng)合方法: 機(jī)械學(xué)習(xí)モデル: 特定のタスクを?qū)g行します。 AIAPI: 事前構(gòu)築された機(jī)能を提供します。 AI ライブラリ: AI タスクを処理します。

迅速な開発のための最も包括的な拡張ライブラリを提供する PHP フレームワークはどれですか? 迅速な開発のための最も包括的な拡張ライブラリを提供する PHP フレームワークはどれですか? Jun 04, 2024 am 10:45 AM

PHP フレームワーク拡張ライブラリには、選択できる 4 つのフレームワークが用意されています。 Laravel: 広大なエコシステムとサードパーティ パッケージで知られ、認(rèn)証、ルーティング、検証、その他の拡張機(jī)能を提供します。 Symfony: 高度にモジュール化されており、再利用可能な「バンドル」を通じて機(jī)能を拡張し、認(rèn)証やフォームなどの領(lǐng)域をカバーします。 CodeIgniter: 軽量かつ高性能で、データベース接続やフォーム検証などの実用的な拡張機(jī)能を提供します。 ZendFramework: 認(rèn)証、データベース接続、RESTfulAPI サポートなどの拡張機(jī)能を備えた強(qiáng)力なエンタープライズ レベルの機(jī)能。

アジャイル開発および大規(guī)模プロジェクトにおける PHP フレームワークの適用 アジャイル開発および大規(guī)模プロジェクトにおける PHP フレームワークの適用 Jun 04, 2024 pm 01:42 PM

PHP フレームワークはアジャイル開発や大規(guī)模プロジェクトで広く使用されており、俊敏性、スケーラビリティ、セキュリティなどの利點(diǎn)を提供します。たとえば、電子商取引 Web サイトでは、Laravel フレームワークを使用してプロトタイプを迅速に作成し、複雑なビジネス ロジックを処理し、セキュリティを確保し、機(jī)能を拡張できます。 PHP フレームワークは、事前定義されたコンポーネントと設(shè)計(jì)パターンを活用することで、開発者がスケーラブルで適切に保守されたアプリケーションを構(gòu)築することを容易にします。

PHP フレームワークと Python フレームワークの比較 PHP フレームワークと Python フレームワークの比較 Jun 05, 2024 pm 09:09 PM

PHP フレームワークと Python フレームワークは、言語機(jī)能、フレームワークの生態(tài)、機(jī)能が異なります。 PHP は主に Web 開発に使用され、學(xué)習(xí)が簡単です。Python には広範(fàn)なライブラリ エコシステムがあります。一般的な PHP フレームワークには、Laravel、CodeIgniter、Symfony などがあります。Python フレームワークには、Django、Flask、Web2py などがあります。実際のケースでは、Laravel はコマンド ラインを使用してブログ モデルとビューを生成しますが、Django は DjangoAdmin と Python スクリプトを使用してブログを作成します。

See all articles