ホームページ  >  記事  >  php教程  >  ThinkPHP フレームワーク 1、ThinkPHP フレームワーク

ThinkPHP フレームワーク 1、ThinkPHP フレームワーク

WBOY
WBOYオリジナル
2016-06-16 09:16:251416ブラウズ

ThinkPHP フレームワーク 1、ThinkPHP フレームワーク

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: (コード Igniter)、軽量フレームワーク、高速実行速度

6. ThinkPHP フレームワーク、無料、オープンソース、高速でシンプルなオブジェクト指向 (内部のコードはオブジェクト指向とプロセス指向の両方)、以前は FCS として知られていましたが、2007 年元旦に ThinkPHP に名前が変更されました

1.6 ThinkPHP ファイル構造

公式 Web サイト http://www.thinkphp.cn/ から TP フレームワークをダウンロードし、ダウンロードが完了したら解凍します。最初のディレクトリにある ThinkPHP は、フレームワーク フォルダー
と同様、フレームワークのコア コードです。
Conf: 構成フォルダー。この TP フレームワークで構築されたすべてのプロジェクトで使用されます。

ライブラリ: クラス ライブラリ

1.7.1 ThinkPHP 下のライブラリ フォルダー

動作: フレームワーク ランタイム補助クラス

Think: ThinkPHP コア コード

ベンダー: 一部のサードパーティ プラグイン

1.7.2 ThinkPHPLibrary 下の Think フォルダー

いくつかのファイル注:

Controller.class.php: 基本コントローラー

Model.class.php: 基本モデル

Think.class .php: 各リクエストはファイル
View.class.php: 基本ビュー

1.8 フレームワークの構造構築

サイト(Entryファイル)配下にindex.phpを新規作成し、indexに記入します。 php:

define('APP_PATH','./application/'); ///

で終わる必要があるプロジェクト フォルダーを定義します。/ThinkPHP/ThinkPHP.php '; // ThinkPHP.php ファイルが含まれます

注: TP フレームワークでは複数のエントリ ファイルをサポートできます (つまり、複数のプロジェクトがサポートされます)。 ('APP_PATH','./application/')

ページを初めて実行するときに、アプリケーション フォルダーが存在しない場合は、自動的に作成されます。 ThinkPHP.php ファイルが実行されると、初めて ThinkPHP フレームワーク構造が自動的に構築されます。

1.9 コントローラの作成

コントローラは以下の仕様のクラスファイルです。

1. モジュール(プラットフォーム)フォルダ配下のControllerフォルダ
に格納されます。
2. クラス名: コントローラー + コントローラー、Pascal 命名法を使用

3. クラス名とファイル名は同じ名前です

4. ファイル名は .class で終わります。 php

5. ThinkPHP はデフォルトで UTF-8 エンコーディングを使用します

6. 大文字と小文字を区別するようにしてください 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 書き換えモード:

URL カスタマイズ機能は、ルート パスを書き換えることで URL をシンプルにし、真実を隠すことができます。

擬似静的技術は書き換えモードです。

必須の設定項目:

'URL_ROUTER_ON' => true, //ルーティングを有効にする

'URL_ROUTE_RULES' => array(

'test' => 'home/Goods/test',

), //ルーティング ルール

パラメータを渡すリダイレクト

1.11 定義を呼び出します。 .1 ルール

テンプレートを呼び出す TP フレームワークは非常にシンプルかつ強力です。独自のルールがあります

1. テンプレートはビュー ディレクトリに配置されます

2. コントローラーはフォルダーに対応し、メソッドはページに対応します

1.11.2 テンプレートの呼び出し

$this->display();

1.11.3 コントローラー内の変数への値の割り当て

$this- > assign('name','tom') //最初のメソッド

$this->sex='male' //2番目のメソッド

1.11.4 template Value in

{$name}

1.12 プロジェクトのグループ化

プロジェクトは、フロントエンドとバックエンドの少なくとも 2 つのグループに分割され、各グループは独自の MVC を持ちます。 。 TP フレームワークがプロジェクト構造を自動生成する際、フロントエンド グループも自動的に生成されます。

ホームと同じディレクトリに新しい Admin フォルダー (バックエンド フォルダー) を作成し、フォルダー内に独自の MVC を作成します。

1.13 システム定数

__SELF__ : 現在要求されているアドレス

__MODEL__: 現在のモジュール

__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つのファイルをロードします。開閉のオーバーヘッドを大幅に節約します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。