Yii は、迅速な PHP 開発のためのベストプラクティスの 1 つであり、その豊富な拡張リソースと迅速な開発アイデアが企業にますます好まれており、そのアプリケーションはますます普及しています。このコースでは、ブログシステムを例に、yii2.0 を使った実践的な開発方法と、yii2.0 の実践的な応用方法を学びます。内容は基本構成、ブログフロントエンド、ブログバックエンドの3部に分かれています。
動画再生アドレス: http://www.php.cn/course/266.html
先生の教え方:
先生の講義はシンプルかつ奥深く、わかりやすいです論理的思考力を使用して生徒の注意を引き、理性を使用して教室での指導プロセスを制御することで、層ごとに連動し、厳密な議論と厳密な構造を組織化して分析します。生徒たちは先生の講義を聞くことで、知識を学ぶだけでなく思考力の訓練も受け、先生の厳しい学問的姿勢に影響を受け、影響を受けました
このビデオで一番難しいのは、Yii のフレームワークルーティング設定です。フレームワーク ブログ システム:
基本ルーティング
アプリケーションのルートの大部分は app/routes.PHP ファイルで定義されます。 Laravel の最も単純なルートは、URI とクロージャ呼び出しで構成されます。
基本的なGETルート
コードは次のとおりです:
Route::get('/', function(){return 'Hello World';});
基本的なPOSTルート
コードは次のとおりです:
Route::post('foo/bar', function() { return 'Hello World'; });
すべてのHTTPメソッドに応答するルートを登録します
コードは次のとおりです:
Route::any('foo', function() { return 'Hello World'; });
ルートに HTTPS アクセスを強制的に渡す
コードは次のとおりです:
Route::get('foo', array('https', function() { return 'Must be over HTTPS'; }));
ルーティングに基づいて URL を生成する必要がある場合は、URL::to メソッドを使用できます:
コードは次のとおりです:
$url = URL::to('foo');
ルートパラメータ
コードは次のとおりです:
Route::get('user/{id}', function($id) { return 'User '.$id; });
オプションのルーティングパラメータ
コードは次のとおりです:
Route::get('user/{name?}', function($name = null) { return $name; });
デフォルト値のオプションのルーティングパラメータ
コードは次のとおりです:
Route::get('user/{name?}', function($name = 'John') { return $name; });
正規表現制約を使用したルーティング
コードは次のとおりです:
Route::get('user/{name}', function($name) { // }) ->where('name', '[A-Za-z]+'); Route::get('user/{id}', function($id) { // }) ->where('id', '[0-9]+');
ルートフィルター
ルートフィルターは、指定されたルートへのアクセスを制限する簡単な方法を提供します。認証を必要とするサイトのゾーン。 Laravel フレームワークには、auth フィルター、auth.basic フィルター、ゲスト フィルター、csrf フィルターなどのいくつかのルーティング フィルターが含まれています。これらは app/filters.php ファイルに保存されます。
ルーティング フィルターを定義します
コードは次のとおりです。
Route::filter('old', function() { if (Input::get('age') < 200) { return Redirect::to('home'); } });
ルーティング フィルターから応答が返された場合、この応答はこのリクエストに対する応答とみなされ、ルーティングは実行されません。このルーティングに関する情報 after フィルターも解除されます。
ルートのルートフィルタを指定します
コードは次のとおりです:
Route::get('user', array('before' => 'old', function() { return 'You are over 200 years old!'; }));
ルートに複数のルートフィルタを指定します
コードは次のとおりです:
Route::get('user', array('before' => 'auth|old', function() { return 'You are authenticated and over 200 years old!'; }));
ルートフィルタのパラメータを指定します
コードは次のとおりです:
Route::filter('age', function($route, $request, $value) { // }); Route::get('user', array('before' => 'age:200', function() { return 'Hello World'; }));
ルート フィルターが 3 番目のパラメーターとして応答 $response:
を受信すると、コードは次のようになります:
Route::filter('log', function($route, $request, $response, $value) { // });
基本ルート フィルター モード
URIに基づくルートのセット。
コードは次のとおりです:
Route::filter('admin', function() { // }); Route::when('admin/*', 'admin');
上記の例では、admin/ で始まるすべてのルートに管理フィルターが適用されます。アスタリスクはワイルドカード文字として機能し、すべての文字の組み合わせに一致します。
HTTP メソッドを指定してパターン フィルターを制約することもできます:
コードは次のとおりです:
Route::when('admin/*', 'admin', array('post'));
Filter クラス
高度なフィルターの場合、クロージャー関数の代わりにクラスを使用できます。フィルター クラスはアプリケーションの外部に存在する IoC コンテナーであるため、フィルター内で依存関係の注入を使用でき、テストが容易になります。
フィルタークラスを定義する
コードは次のとおりです:
class FooFilter { public function filter() { // Filter logic... } }
クラスベースのフィルターを登録します
コードは次のとおりです:
Route::filter('foo', 'FooFilter');
名前付きルート
ジャンプを生成するときに名前付きルートを指定するのが簡単ですまたは URL ルーティング。次のようにルートの名前を指定できます:
コードは次のとおりです:
Route::get('user/profile', array('as' => 'profile', function() { // }));
コントローラー メソッドのルート名を指定することもできます:
コードは次のとおりです:
Route::get('user/profile', array('as' => 'profile', 'uses' => 'UserController@showProfile'));
URL またはジャンプを生成しています。 ルートの名前を使用します:
コードは次のとおりです:
$url = URL::route('profile'); $redirect = Redirect::route('profile');
currentRouteName メソッドを使用してルートの名前を取得できます:
コードは次のとおりです:
$name = Route::currentRouteName();
Routeグループ
ルートのグループにフィルターを適用したい場合があります。ルートごとにフィルターを指定する必要はなく、ルート グループを使用できます:
コードは次のとおりです:
Route::group(array('before' => 'auth'), function() { Route::get('/', function() { // Has Auth Filter }); Route::get('user/profile', function() { // Has Auth Filter }); });
サブドメイン ルーティング
Laravel ルーティングは、ワイルドカード サブドメインを処理し、ドメイン名からワイルドカード パラメーターを取得することもできます。
サブドメイン ルーティングを登録します
コードは次のとおりです:
Route::group(array('domain' => '{account}.myapp.com'), function() { Route::get('user/{id}', function($account, $id) { // }); });
ルート プレフィックス
ルートのグループは、属性配列のプレフィックス オプションを使用して、ルーティング グループにプレフィックスを追加できます:
ルーティング グループ
コードは次のとおりです:
Route::group(array('prefix' => 'admin'), function() { Route::get('user', function() { // }); });
ルーティング モデル バインディング
模型绑定提供了一个简单的方法向路由中注入模型。比如,不仅注入一个用户的 ID,您可以根据指定的 ID 注入整个用户模型实例。首先使用 Route::model 方法指定所需要的模型:
为模型绑定一个变量
代码如下:
Route::model('user', 'User');
然后, 定义一个包含 {user} 参数的路由:
代码如下:
Route::get('profile/{user}', function(User $user) { // });
因为我们已经绑定 {user} 参数到 User 模型,一个 User 实例将被注入到路由中。因此,比如一个 profile/1 的请求将注入一个 ID 为 1 的 User 实例。
注意: 如果在数据库中没有找到这个模型实例,将引发404错误。
如果您希望指定您自己定义的没有找到的行为,您可以为 model 方法传递一个闭包作为第三个参数:
代码如下:
Route::model('user', 'User', function() { throw new NotFoundException; });
有时您希望使用自己的方法处理路由参数,可以使用 Route::bind 方法:
代码如下:
Route::bind('user', function($value, $route) { return User::where('name', $value)->first(); });
引发404错误
有两种方法在路由中手动触发一个404错误。首先,您可以使用 App::abort 方法:
代码如下:
App::abort(404);
其次,您可以抛出一个 Symfony\Component\HttpKernel\Exception\NotFoundHttpException 的实例。
更多关于处理404异常和为这些错误使用使用自定义响应的信息可以在 错误 章节中找到。
路由至控制器
Laravel 不仅允许您路由至闭包,也可以路由至控制器类,甚至允许创建 资源控制器.
以上がYii2 フレームワークを使用した完全なブログ システムの構築に関するリソースの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









