1.1 フレームワークの概念
フレームワークのコードは、実際には、フレームワーク アーキテクチャのコードであり、ビジネス ロジック コードではありません。クラス、メソッド、関数などを保護し、フレームワーク コードは特定のルールに従って結合されてフレームワークを形成します。
1.2 フレームワークを使わずに開発するときに遭遇する問題
1. コードの書き方に統一規格がない
2. プロジェクトの機能をうまく分割できない
3. 局所的な小さな変更が全体の状況に影響を及ぼす可能性がある
4.プロジェクトのアップグレードが面倒
1.3 フレームワークを使用するメリット
1. チームのコードスタイルの統一に役立つ
2. 基盤となるフレームワークを気にせずにビジネスロジックに全エネルギーを集中できる
3. 高速、安定、効率的4. コードを大量に保存できます
5. 後のメンテナンスやアップグレードが非常に便利です
1.5 関連フレームワーク
1. zendframework: zend の正式リリースがあります (zend 社は PHP 言語のメンテナンスとアップグレードを行う会社です) 、機能も非常に強力で、重量級のフレームワークです
2. Yii: 中国人が開発した重量級のフレームワークで、コードの再利用性を最大限に高めています
3.cakePHP: 外国のフレームワーク、遅いです
4. symfony。 : 外国のフレームワーク
5.CI: (code Igniter)、軽量フレームワーク、高速実行速度
6.ThinkPHP フレームワーク、無料、オープンソース、高速、シンプルなオブジェクト指向 (内部のコードはオブジェクト指向と の両方です)プロセス指向)、以前は FCS として知られていましたが、2007 年の元旦に ThinkPHP に名前変更されました
1.6 ThinkPHP ファイル構造
公式 Web サイト http://www.thinkphp.cn/ から TP フレームワークをダウンロードし、解凍します。ダウンロードが完了しました、最初のカテゴリ ディレクトリ内の ThinkPHP は、フレームワーク フォルダーと同様のフレームワークのコア コードです
Conf: 構成フォルダー、この TP フレームワーク上に構築されたすべてのプロジェクトで使用されます
ライブラリ: クラス ライブラリ
1.7.1 ThinkPHP フォルダー内のライブラリ
動作: フレームワーク ランタイム補助クラス
考慮事項: ThinkPHP コア コード
ベンダー: 一部のサードパーティ プラグイン
1.7.2 ThinkPHPLibrary 下の Think フォルダー
注意すべきいくつかのファイル:
Controller.class.php: 基本コントローラー
Model.class.php: 基本モデル
Think.class.php: 各リクエストはファイルで実行する必要があります
View.class.php: 基本ビュー
1.8ビルドフレームワークの構造
サイト配下に新しいindex.php(エントリーファイル)を作成し、index.phpに次のように入力します:
define('APP_PATH','./application/'); //プロジェクトフォルダーを定義します。 required で終わる /
require './ThinkPHP/ThinkPHP.php'; //ThinkPHP.php ファイルが含まれます
注: TP フレームワークでは複数のエントリー ファイルをサポートできます (つまり、複数のプロジェクトがサポートされます)。 ;
1.8.1 define('APP_PATH','./application/')
プロジェクトフォルダーを定義します。 初めてページを実行するとき、アプリケーションフォルダーが存在しない場合は、アプリケーションフォルダーが自動的に作成されます。 。 ThinkPHP.php ファイルが実行されると、初めて ThinkPHP フレームワーク構造が自動的に構築されます。
1.9 コントローラーを作成します
コントローラーはクラスファイルで、仕様は以下の通りです
1.モジュール(プラットフォーム)フォルダー配下のControllerフォルダーに格納されます
2.クラス名:Controller+Controller、で名前を付けますPascal メソッド
3. クラス名とファイル名は同じです
4. ファイル名は .class.php で終わります
5. ThinkPHP はデフォルトで UTF-8 エンコーディングを使用します
6. Try to be case Windowsでは問題ありませんが、Linuxでは大文字と小文字が区別されます
コントローラーを作成する際は名前空間と基本コントローラーの導入に注意してください。
1.10 ThinkPHPの4つのルート
メソッドを正確に見つけるには、platform.controller.methodの3つのパラメータが必要です。
a) 通常モード:
構文: http://url/index.php/m=module&c=controller&a=method
b) pathinofo() モード:
構文: http://url/index.php /module/controller/method
c) 互換モード:
構文: http://url/index.php?s=/module/controller/method
d) rewrite rewrite mode:
URL カスタマイズ機能は次のことができます。 URL を単純にし、ルートを書き換えることで実際のパスを隠します。
擬似静的技術は書き換えモードです。
必須設定項目:
'URL_ROUTER_ON' => true, //ルーティングを有効にする
'URL_ROUTE_RULES' => array(
'test' => 'home/Goods/test',
), //ルーティングルール
リダイレクト転送パラメータ
1.11 定義. テンプレートの呼び出し
1.11.1 ルール
テンプレートを呼び出す TP フレームワークは非常にシンプルかつ強力です。独自のルールがあります
1. テンプレートはビューディレクトリに配置されます
2. コントローラーはフォルダーに対応し、メソッドはページに対応します
1.11.2 テンプレートを呼び出す
$this->display();
1.11.3 コントローラー内の変数に値を代入する
$this->assign('name','tom') / /First 1つ目の方法
$this->sex='male'; //2つ目の方法
1.11.4 テンプレートの値を取得する
{$name}
1.12 プロジェクトのグループ化
少なくとも 2 つのグループ (フロント デスクとバック デスクが 1 つずつ) に分かれており、各グループには独自の MVC があります。 TP フレームワークがプロジェクト構造を自動生成する際、フロントエンド グループも自動的に生成されます。
Homeと同じレベルのディレクトリに新しいAdminフォルダー(バックエンドフォルダー)を作成し、そのフォルダー内に独自のMVCを作成します
1.13システム定数
__SELF__:現在のリクエストのアドレス
__MODEL__:現在のmodule
__CONTROLLER__ : 現在のコントローラー
__ACTION__ : 現在のメソッド
get_define_constants(true) はすべての定数を表示し、true はグループ表示を意味します。
質問: __CONTROLLER__ 定数は PHP 定数ですが、この定数をテンプレートに直接記述すると解析できることがわかりました。PHP 定数を HTML テンプレートに出力できるのはなぜですか? PHPで定数NAMEを定義しましたが、テンプレートにNAMEの値を出力するにはどうすればよいですか?
ContentReplaceBehavior.class.php ファイルの templateContentReplace() メソッドに文字列置換を追加します
1.14 ページの下部にログ情報を表示します
'SHOW_PAGE_TRACE' => true //ログ情報をページの下部に表示しますページ
設定 ページの右下隅に小さな緑色のアイコンが表示されます
1.15 TP 本番および開発モード
define('APP_DEBUG', TRUE) //開発モード
define('APP_DEBUG', false); ); //本番モード
1.15.1 開発モード
1. エラープロンプトがわかりやすくなりました
2. コードの修正はすぐに効果が現れます
3. 実行効率が低いです
1.16。 2 生成モード
1. エラープロンプトは比較的曖昧です
2. 多くのコアコードファイルがキャッシュファイル(common~runtime.php)に作成されるため、当初は多くのファイルをロードする必要があったリクエストはロードするだけで済むようになります1つのファイル。開閉のオーバーヘッドを大幅に節約します。