Yii 学習の概要 - インストールと構成
この記事は、Yii 学習の概要記事シリーズの最初の記事であり、主に YII の簡単な紹介、インストール、構成について説明します。
以前Yiiに関する記事を書きましたが、連休中はやることがないので、以前の記事、Yiiの公式ドキュメント、Yiiに関する最近の成果を組み合わせてまとめてシリーズに書きます~~
Yii は、大規模な Web アプリケーションを開発するための高性能コンポーネントベースの PHP フレームワークです。 Yii は厳密な OOP で書かれており、完全なライブラリ リファレンスと包括的なチュートリアルが含まれています。 MVC、DAO/ActiveRecord、ウィジェット、キャッシュ、階層型 RBAC、Web サービスからテーマ、I18N および L10N まで、Yii は今日の Web 2.0 アプリケーション開発に必要なほぼすべてを提供します。実際、Yii は最も効率的な PHP フレームワークの 1 つです。 Yii は、高性能 PHP5 Web アプリケーション開発フレームワークです。シンプルなコマンド ライン ツール yiic を使用すると、Web アプリケーション コード フレームワークを迅速に作成でき、開発者は生成されたコード フレームワークに基づいてビジネス ロジックを追加して、アプリケーション開発を迅速に完了できます。
Yiiをインストール
Yii をインストールする前に、PHP5.1.0 以降をサポートする Web サーバーなどの開発環境を設定する必要があります。 Yii は、Windows および Linux オペレーティング システム上の Apache Web サーバーでテストされています。他のプラットフォーム上で PHP5 をサポートする Web サーバーでも実行できる場合があります。インターネット上には多くの無料リソースが公開されており、PHP5 で構成された Web サーバー環境を入手できる場合があります。ここでは、Web サーバーと PHP5 のインストールについては脇に置きます。
Yii のインストールは実際には非常に簡単で、必要なステップは 2 つだけです:
http://www.yiiframework.com/ から Yii フレームワークをダウンロードします。ダウンロードしたファイルを Web サーバーにアクセスできるディレクトリに解凍します。
インストールが完了したら、現在のサーバーが Yii の要件をすべて満たしているかどうかを確認することをお勧めします。
幸いなことに、これを行うのは簡単で、Yii には簡単な検査ツールが付属しています。これを呼び出すには、ブラウザのアドレス バーに http://yourhostname/path/to/yii/requirements/index.php と入力します。サーバーの設定が下に表示されます。チェック ツールを使用して、サーバーに拡張機能やコンポーネントがインストールおよび使用されていないことを確認しますが、インストールされているかどうかを確認するための提案が提供されるだけです。ご覧のとおり、次のチェック結果のすべてが合格ステータスであるわけではなく、一部には警告が表示されるものもあります。もちろん、構成が若干異なる場合があるため、表示結果も異なります。実際、以下の詳細をすべて渡す必要はありません。しかし、結論の段落の内容によれば、その一部も必要です。あなたのサーバー設定は Yii の最小要件を満たしています。 (サーバー構成は Yii の最小要件を満たしています。)
新しいアプリを作成する
Yiiのインストール場所はもうご存知です
WebRoot は Web サーバー設定のルート ディレクトリです
コマンドラインからフレームワークディレクトリに移動し、以下を実行します:
コードは次のとおりです:
% cd Webroot/testdrive/framework
% yiic webapp ../../testdrive
「/WebRoot/testdrive」の下に Web アプリケーションを作成しますか? [はい|いいえ]
はい
mkdir /WebRoot/testdrive
mkdir /WebRoot/testdrive/assets
mkdir /WebRoot/testdrive/css
css/bg.gif を生成する
css/form.cssを生成する
css/main.cssを生成する
アプリケーションは /WebRoot/demo に正常に作成されました。この webapp コマンドの目的は、まったく新しい Yii アプリケーションを作成することです。パラメータを絶対パスまたは相対パスで指定するだけで、アプリケーションが作成されます。生成されるディレクトリとファイルは、アプリケーションの単なるスケルトンです。
コードは次のとおりです:
テストドライブ/
Index.php Webアプリケーションエントリスクリプトファイル
Index-test.php 機能テストに使用するエントリスクリプトファイル
assets/ 公開リソース ファイルが含まれています
css/にはCSSファイルが含まれています
画像/画像ファイルが含まれています
テーマ/アプリケーションテーマが含まれます
protected/保護されたアプリケーション ファイルが含まれています
yiic yiic コマンドラインスクリプト
yiic.bat Windows での yiic コマンドライン スクリプト
yiic.php yiic コマンドライン PHP スクリプト
コマンド/ カスタム 'yiic' コマンドが含まれています
shell/ にはカスタムの「yiic シェル」コマンドが含まれています
コンポーネント/ 再利用可能なユーザーコンポーネントが含まれています
Controller.php すべてのコントローラークラスの基本クラス
Identity.php 認証に使用される「Identity」クラス
config/ には設定ファイルが含まれます
console.php コンソールアプリケーションの設定
main.php Webアプリケーション構成
test.php 機能テストに使用される構成
controllers/ にはコントローラーのクラスファイルが含まれています
SiteController.php デフォルトのコントローラークラスファイル
データ/サンプルデータベースが含まれています
schema.mysql.sql MySQL データベースの例
schema.sqlite.sql SQLite データベースの例
testdrive.db サンプル SQLite データベース ファイル
extensions/ サードパーティの拡張機能が含まれています
メッセージ/翻訳されたメッセージが含まれています
models/ モデルのクラスファイルが含まれています
LoginForm.php「ログイン」アクションフォームモデル
ContactForm.php「連絡先」アクションフォームモデル
runtime/ には一時的に生成されたファイルが含まれます
テスト/テスト スクリプトが含まれます
views/ にはコントローラーのビューファイルとレイアウトファイルが含まれます
レイアウト/レイアウトビューファイルが含まれています
main.php すべてのビューのデフォルトのレイアウト
column1.php は単一列ページで使用されるレイアウトを使用します
column2.php ダブルカラムを使用したページで使用されるレイアウト
site/ には、「サイト」コントローラーのビュー ファイルが含まれています
ページ/「静的」ページが含まれます
about.php「概要」ページビュー
contact.php の「連絡先」アクションのビュー
error.php の「error」アクションのビュー (外部エラーを表示)
Index.php の「index」アクションのビュー
login.php の「ログイン」アクションのビュー
system/ システムビューファイルが含まれています
現時点では、コードを 1 行も記述することなく、ブラウザで次の URL にアクセスして、最初の Yii アプリケーションを確認できます。
http://ホスト名/testdrive/index.php
後で説明するように、このアプリケーションには、ホームページ、連絡先ページ、ログイン ページの 3 つのページが含まれています。ホームページには、アプリケーションとユーザーのログイン ステータスに関する情報が表示され、問い合わせページには、ユーザーが問い合わせを記入して送信するための問い合わせフォームが表示されます。また、ログイン ページでは、ユーザーは最初に認証を行ってから、承認されたコンテンツにアクセスできます。
このアプリケーションでは、どのページの URL にアクセスしても、index.php が含まれています。これを削除したい場合はどうすればよいですか?
1. Apache の mod_rewrite モジュールを有効にし、LoadModule rewrite_module modules/mod_rewrite.so の前にある「#」記号を削除し、
2. プロジェクトの /protected/config/main.php にコードを追加します:
コードは次のとおりです:
...
'urlManager'=>array(
'urlFormat'=>'パス',
'showScriptName'=>false,//false は引用符で囲まないことに注意してください
'ルール'=>配列(
'サイト'=>'サイト/インデックス',
)、
)、
...
)、
3. サーバーを設定します。Yii は Apache と Nginx で設定できます
1)アパッチ
Apache サーバーの下で、Yii は .htaccess ファイルを設定する必要があります。構成は以下の通りです
コードは次のとおりです:
# httpd がドットファイル (.htaccess、.svn、.git など) を提供しないようにします
リダイレクトマッチ 403 /..*$
# ディレクトリまたはファイルが存在する場合は、それを直接使用します
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# それ以外の場合は、index.php に転送します
RewriteRule .index.php
2) Nginx
Yii は Nginx と PHP の FPM SAPI を使用できます。構成は以下の通りです
コードは次のとおりです:
サーバー{
$host_path "/www/mysite";
を設定します access_log /www/mysite/log/access.log main;
サーバー名私のサイト;
root $host_path/htdocs;
set $yii_bootstrap "index.php";
文字セット utf-8;
場所 / {
インデックスindex.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
location ~ ^/(保護された|フレームワーク|テーマ/w+/ビュー) {
全てを否定します
}
#yii による存在しない静的ファイルへの呼び出しの処理を回避します
場所 ~ .(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
# 127.0.0.1:9000 でリッスンする FastCGI サーバーに PHP スクリプトを渡します
#
場所 ~ .php {
fastcgi_split_path_info ^(.+.php)(.*)$;
#yii に存在しない PHP ファイルへの呼び出しをキャッチさせましょう
$fsn /$yii_bootstrap を設定します;
if (-f $document_root$fastcgi_script_name){
$fsn $fastcgi_script_name を設定します;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_params を含めます;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;
#PATH_INFO と PATH_TRANSLATED は省略可能ですが、CGI では RFC 3875 で指定されています
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
}
# nginx がドットファイル (.htaccess、.svn、.git など) を提供しないようにします
場所〜/。 {
全てを否定します
access_log off;
ログが見つかりませんでした;
}
}
上記の構成を使用すると、php.ini で cgi.fix_pathinfo=0 を設定でき、これにより、多数の不必要なシステムの stat() の使用を回避できます。
基本的な取り付けと配置はここに到達します~~

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
