yii には、今日の Web2.0 開発に必要な機能が数多くあります。以下に短いリストを示します。
?
MVC デザイン パターン: yii は WEB デザインで実証済みのテクノロジーを使用しており、表示とロジックをより適切に分離できます。
DAO、アクティビティ記録: yii を使用すると、オブジェクトの観点からデータベース モデルを構築し、長く繰り返されるステートメントを保存できます。
jquery の統合: 最も人気のある JavaScript フレームワークの 1 つです。jquery のおかげで、非常に効率的で多用途な JavaScript インターフェイスを作成できます
フォーム入力の検証: Yii はフォーム入力を簡単かつ安全に収集できます。入力データが正しいことを確認するための完全な検証メソッドのセットと、検証が失敗したときにエラー メッセージを表示するための補助メソッドおよびコンポーネントが備わっています。
WEB2.0 コンポーネント: jquery によって提供される一連の Web2.0 コンポーネント。入力フィールド、ツリー ビューなどを自動的に完成させることができます。
認証と認可: yii には認証が組み込まれています。階層的な基本ロールのアクセス制御を通じて認可を提供します。
テーマ: yii アプリケーションのテーマを即座に変更できます。
WEB サービス: yii は、複雑な WSDL サービス記述の自動生成とサービス要求処理の管理をサポートします。
国際化とローカリゼーション: yii は、情報の変換、日付と時刻のフォーマット、数値のフォーマット、インターフェースのローカリゼーションをサポートしています。
階層型キャッシュ プラン: yii は、データ キャッシュ、ページ キャッシュ、フラグメント キャッシュ、および動的コンテンツをサポートします。また、アプリケーション コードを変更せずに、キャッシュされたストレージ メディアを変更できます。
エラー処理とログ: エラーは非常に人道的な方法で処理および表示され、ログ情報は分類、フィルタリングされ、さまざまな宛先にルーティングできます。
セキュリティ: yii は、WEB アプリケーションがネットワーク攻撃を確実に防ぐための多くのセキュリティ対策を提供します。これには、クロスサイト スクリプティングの防止、疑似クロスサイト リクエストの防止、Cookie 改ざんの防止などが含まれます。
xhtml に準拠: yiit コンポーネントとコマンドラインツールによって生成されたコードは、xhtml 標準に準拠しています。
自動コード生成: Yii は、アプリケーションフレームワーク、CRUD アプリケーションなど、必要なコードを自動的に生成するツールを提供します。
完全なオブジェクト指向: yii フレームワークは厳密なオブジェクト指向プログラミング パターンに準拠しています。グローバル関数や変数は定義されていません。定義されたクラス階層により、最高の使いやすさとカスタマイズ性が得られます。
サードパーティコードのサポート: yii はサードパーティコードを非常によくサポートできます。たとえば、YII アプリケーションで PERA または zend フレームワークを使用できます。
詳細なドキュメント: 各メソッドまたはプロパティには明確な説明があります。総合的な指導などを行います。
拡張ライブラリ: yii は、ユーザーが作成したコンポーネントで構成される拡張ライブラリを提供します。
?
プロジェクトのホームページは次のとおりです: www.yiiframework.com/
?
?
?
実際、yii のインストールは ZendFramework のインストールと何ら変わりません。各プロジェクトに yii を含めるか、php の include_path を使用してサーバーに yii を含めます。
?
ダウンロードしたフォルダーを解凍すると、その中に 3 つのサブフォルダーがあります: デモ (デモ)、フレームワーク (フレームワーク コア コード)、要件 (これは、サーバー設定が Yii フレームワーク、主に PHP 拡張機能の側面をサポートしているかどうかを検出するためのものです)
?
次に、最初にテストします。要件ディレクトリを Web ディレクトリにコピーしてから、xxx.xxx.com/requirements を実行します。これにより、次の図のような内容が表示されます。
?
画像
php_yii_requirements_1
?
PDO MySQL 拡張モジュールが失敗しました すべてのデータベース関連クラス。これは、MySQL データベースを使用する場合に必須です。
PDO PostgreSQL 拡張モジュールが失敗しました すべてのデータベース関連クラス。これは、PostgreSQL データベースを使用する場合に必要です。
APC 拡張モジュール CApcCache が失敗しました
SOAP 拡張モジュールが失敗しました CWebService、CWebServiceAction
?
私のサーバーには現在 4 つの失敗した項目があります。PDO PostgreSQL 項目は必要ありません。残りの 3 つの項目を追加する予定です。
?
php --with-pdo-mysql=/usr/local/mysql をコンパイルするときに PDO MySQL 拡張機能を追加する必要があります
SOAP には --enable-soap と --with-libxml-dir=/usr/local/libxml2 を追加する必要があります
?
次にコンパイルしてインストールします
?[クリップボードにコピー]コード BASH を表示
?
1
?
?
?
./configure --prefix=/usr/local/php-5.2.9/ --enable-force-cgi-redirect --enable-mbstring=all --enable-mbregex --enable-mbstr-enc- trans --enable-versioning --enable-trans-sid --enable-ftp --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs --with -soap=yes --with-curl=/usr/local/curl/ --with-zlib-dir=/usr/local/zlib/ --with-mcrypt=/usr/local/libmcrypt/ --with-gd =/usr/local/gd2 --with-jpeg-dir=/usr --with-freetype-dir=/usr/local/freetype --with-ttf --with-png-dir=/usr --with- mhash=/usr/local/mhash/ --with-dom=/usr/local/libxml2 --with-iconv=/usr/local/libiconv --with-openssl=/usr/local/openssl --with-pdo -mysql=/usr/local/mysql --enable-soap --with-libxml-dir=/usr/local/libxml2 && make && make install
?
以前に memcached をインストールしたので、ここでもう一度インストールします
?[クリップボードにコピー]コード BASH を表示
?
1
2
3
4
?
?
?
/usr/local/php/bin/phpize
./configure --prefix=/usr/local/memcached_phpclient3.0.4 --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir =/usr/local/zlib/
作る
インストールを行う
?
インストールが完了すると、次のように表示されます:
共有拡張機能のインストール: /usr/local/php-5.2.9//lib/php/extensions/no-debug-non-zts-20060613/
?
戻って php.ini を変更します
最初に extension_dir を見つけます。デフォルトは次のようになります: extension_dir = "./"
次に、次のように変更します: extension_dir = "/usr/local/php//lib/php//extensions/no-debug-non-zts-20060613/"
次に、動的拡張機能を見つけて以下を追加します:
拡張子=memcache.so
?
APC 拡張モジュールはさらに面倒です:
ダウンロード アドレスは次のとおりです: http://pecl.php.net/package/apc
以下のリストから必要なものを選択してダウンロードできます。 3.0.19 安定版をダウンロードしました。
解凍後、ディレクトリに入り、次のコマンドを実行します:
?[クリップボードにコピー]コード BASH を表示
?
1
2
3
4
?
?
?
/usr/local/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
作る
インストールを行う
?
次に、php.ini ファイルを再度変更します。
参加:
拡張子=apc.so
apc.enabled = 1
apc.cache_by_default = オン
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = オン
?
APC 構成の手順:
apc.cache_by_default = オン
すべてのファイルに対してデフォルトでバッファリングを有効にするかどうか。 Off に設定し、プラス記号で始まる apc.filters ディレクティブと一緒に使用すると、ファイルはフィルター
に一致する場合にのみキャッシュされます。?
apc.enabled = オン
APC を有効にするかどうか? APC が PHP に静的にコンパイルされており、それを無効にしたい場合は、これが唯一の方法です。
?
pc.filters =
POSIX 拡張正規表現のカンマ区切りのリスト。
ソース ファイル名がいずれかのパターンに一致する場合、ファイルはキャッシュされません。
マッチングに使用されるファイル名は、絶対パスではなく、include/require に渡されたファイル名であることに注意してください。
正規表現の最初の文字が「 」の場合は、その式に一致するファイルがキャッシュされることを意味します。最初の文字が「-」の場合は、一致したファイルはキャッシュされません。 「-」はデフォルト値であり省略可能です。
?
apc.ttl = 0
キャッシュ エントリがバッファ内に存在できる秒数。 0 はタイムアウトしないことを意味します。推奨値は7200~36000です。 0 に設定すると、バッファが古いキャッシュ エントリでいっぱいになり、新しいエントリがキャッシュされなくなる可能性があることを意味します。
?
apc.user_ttl = 0
apc.ttl と似ていますが、各ユーザーの推奨値は 7200 ~ 36000 です。
?
apc.gc_ttl = 3600
キャッシュ エントリがガベージ コレクション テーブルに存在できる秒数
この値は、キャッシュされたソース ファイル China.中国.Webmaster Station の実行中にサーバー プロセスがクラッシュした場合でも、安全対策を提供します
ソース ファイルが変更されている場合、古いバージョンに割り当てられたメモリは、この TTL 値に達するまで再利用されません。この機能を無効にするには、ゼロに設定します。
?
pc.max_file_size = 1M
このサイズを超えるファイルのキャッシュを許可しないでください。
?
apc.num_files_hint = 1000
Web サーバーに含めたりリクエストしたりできるさまざまなソース ファイルのおおよその数 (推奨値は 1024 ~ 4096)。
よくわからない場合は、0 に設定してください。この設定は主に、数千のソース ファイルがあるサイトに役立ちます。
?
apc.shm_segments = 1
コンパイラ バッファに割り当てられる共有メモリ ブロックの数 (推奨値は 1)。
APC が共有メモリを使い果たし、apc.shm_size ディレクティブをシステムで許容される最大値に設定している場合は、この値を増やしてみることができます。
?
apc.shm_size = 30
各共有メモリ ブロックのサイズ (MB 単位、推奨値は 128 ~ 256)。
一部のシステム (ほとんどの BSD バリアントを含む) では、デフォルトの共有メモリ ブロック サイズが非常に小さくなっています。
?
apc.write_lock = オン
書き込みロックを有効にするかどうか。
?
Apache サーバーを再起動します
そうすると、phpinfo に apc 設定が表示されます。
?
この時点で、必要な Yii 拡張機能が設定されています。テスト Web ページを更新すると、次のようになります。
?
画像
php_yii_requirements_2
?
----------------------------------------------- --
さて、環境テストは成功しました。次はデモをテストしましょう。
?
Yii のデモ ディレクトリとフレームワーク ディレクトリを Web ディレクトリにコピーし、xxx.xxx.com/demos/helloworld にアクセスします
?
ここに表示されます:
致命的エラー: 行 0 の不明で、許容メモリ サイズ 134217728 バイトが使い果たされました (137963997 バイトを割り当てようとしました)
理由はわかりませんが、php.ini で上記の apc 設定をコメントアウトし、apache2 を再起動しました。問題なく、正しく表示されます。
ハローワールド
最初に apc 拡張子を使用しないでください。
?
次に、yii フレームワーク ディレクトリを適切な場所に配置し、php.ini の include_path を変更して、Apache サーバーを再起動します
この時点で helloworld/index.php を変更してください
?[クリップボードにコピー]コード PHP を表示
?
1
2
3
?
?
[php] plaincopy を表示
?
? require_once(dirname(__FILE__)< /span>.'/../../framework/yii.php ');
? #次のように変更します:? require_once('yii.php');
?
現時点でも正しく表示できる場合: Hello World
は構成が成功したことを意味します。
?
さて、設定が完了したので、最初に Yii を使ってプログラムを書く方法を説明します。
こちらをご覧ください:
英語: www.yiiframework.com/doc/guide/
中国語: www.yiiframework.com/doc/guide/zh_cn/index