はじめに
ThinkPHP は、MVC およびオブジェクト指向に基づいた高速でシンプルな軽量の PHP 開発フレームワークであり、Apache2 オープン ソース ライセンスの下でリリースされており、優れたパフォーマンスを維持しながら、当初からシンプルで実用的な設計原則を遵守しています。コーディングのしやすさと使いやすさにこだわり、独自の機能を多数搭載し、WEBアプリケーション開発を強力にサポートします。
ディレクトリ構造
ThinkPHP の最新バージョンは、公式 Web サイト (http://thinkphp.cn/down/framework.html) または Github (https://github.com/liu21st/thinkphp/downloads) からダウンロードできます。 。
ダウンロードした圧縮ファイルを WEB ディレクトリ (または任意のディレクトリ) に解凍します。 フレームワークのディレクトリ構造は次のとおりです:
─ ThinkPHP.php フレームワーク エントリー ファイル
─ 共通フレームワーク公開ファイル
─ Conf フレームワーク構成ファイル
§─Extend Framework Extensionディレクトリ
§─Langコア言語パッケージディレクトリ
til─Libコアクラスライブラリディレクトリ
│ til─Behaviorコアビヘイビアークラスライブラリ
│ til─コアコア基本クラスライブラリ
│ §─Driver 内蔵ドライバ
│ │ ├─Cache 内蔵キャッシュドライバ
│ │ §─Db 内蔵データベースドライバ
│ │ §─TagLib 内蔵タグドライバ
│ │ └─Templateビルトイン テンプレート エンジン ドライバー
│ └─テンプレート ビルトイン テンプレート エンジン
└─Tpl システム テンプレート ディレクトリ
フレームワークのパブリック エントリ ファイル ThinkPHP.php は、直接実行できないことに注意してください。プロジェクト エントリ ファイルを正常に実行するには (後で説明します)、これは多くの初心者が犯しやすい間違いです。
エントリーファイル
始める前に、Web サーバーと PHP 実行環境が必要です。まだお持ちでない場合は、統合開発環境 WAMPServer (Apache、PHP、MySQL を統合する開発キット) を使用することをお勧めします。 、ローカル開発とテストに ThinkPHP を使用するための、複数の PHP バージョン、MySQL バージョン、および Apache バージョン間の切り替えをサポートします。
次に、まず WEB ルート ディレクトリの下にアプリのサブディレクトリを作成し (このアプリはプロジェクト名です)、次にそのディレクトリの下にindex.php ファイルを作成し、簡単なコード行を追加します:
require '/ThinkPHP フレームワークが配置されているディレクトリ/ThinkPHP.php';
このコード行の機能は、ThinkPHP フレームワークのエントリー ファイル ThinkPHP.php をロードすることです。これは、ThinkPHP に基づいて開発されたすべてのアプリケーションの最初のステップです。 。
次に、ブラウザでこのエントリファイルにアクセスします。
http://localhost/app/
一般的なWebサーバーのデフォルトファイルはindex.phpなので、URLアドレスにindex.phpを追加する必要はありません。実行後、ウェルカム ページが表示されます。
によってプロジェクト ディレクトリが自動的に生成されます。ディレクトリ構造は次のとおりです:
§─index.php プロジェクト エントリ ファイル
§─共通プロジェクト パブリック ファイル ディレクトリ
zel ─Conf プロジェクト構成ディレクトリ
─Lang プロジェクト言語ディレクトリ
─Lib プロジェクト クラス ライブラリ ディレクトリ
│ §─Action アクション クラス ライブラリ ディレクトリ
│ §─Behavior 動作クラス ライブラリ ディレクトリ
│ §─Model モデル クラスライブラリ ディレクトリ
│ └─ウィジェット ウィジェット クラス ライブラリ ディレクトリ
§─ランタイム プロジェクト ランタイム ディレクトリ
│ §─キャッシュ テンプレート キャッシュ ディレクトリ
│ っていつ─データ データ キャッシュ ディレクトリ
│ ├─ログ ログ ファイル ディレクトリ
│ └─Temp 一時キャッシュ ディレクトリ
└─Tpl プロジェクト テンプレート ディレクトリ
プロジェクトのエントリ ファイルをアプリ ディレクトリの外に移動したい場合は、エントリ ファイルindex.php の内容を次のように変更するだけです。
define( 'APP_NAME','app');
define('APP_PATH','./app/');
require '/ThinkPHP Framework directory/ThinkPHP.php';
APP_NAME セクションと APP_PATH セクションは、プロジェクト名とプロジェクト ディレクトリを定義するために使用されます。プロジェクト名は通常、プロジェクトのディレクトリ名を指します。
プロジェクトのエントリ ファイルを移動して変更した後、
http://localhost/
を通じてアプリ プロジェクトにアクセスできるようになります。もちろん、Web ルート ディレクトリの下に複数のサブディレクトリを作成して、複数のプロジェクトをデプロイすることもできます。
設定
各プロジェクトには独立した設定ファイルがあります (プロジェクト ディレクトリの Conf/config.php にあります)。設定ファイルの定義形式は、配列を返す PHP のメソッドを採用しています。例:
// プロジェクト設定ファイル
return array( '構成パラメータ' = & gt; '構成値',
// その他の構成パラメータ
//...);
必要に応じて、プロジェクトのプロジェクト構成ファイルに関連する構成を追加できます。通常、設定項目の追加とは、プロジェクト設定ファイルに追加することを意味します:
'Configuration Parameters' => 'Configuration Value'、
設定値は文字列、数値、ブール値、および配列をサポートします。データの場合、通常は構成パラメータを大文字で定義することをお勧めします。必要に応じて、プロジェクトの他の構成ファイルを定義することもできます。
Controller
モジュールごとにコントローラー クラスを定義する必要があります。コントローラー クラスの命名規則は次のとおりです: モジュール名 + Action.class.php (モジュール名はキャメルケースを使用し、最初の文字は大文字になります)
システムのデフォルト モジュールは Index、対応するコントローラはプロジェクト ディレクトリ下の Lib/Action/IndexAction.class.php です。クラス名とファイル名は一致しています。デフォルトの操作はインデックスで、これはコントローラーのパブリック メソッドです。プロジェクトのディレクトリ構造が初めて生成されるとき、システムはデフォルトでデフォルトのコントローラーを生成します (前に見たウェルカム ページ)。インデックス メソッドを次のコードに変更します。 class IndexAction extends Action {
public関数インデックス( ){
エコー 'hello, world!';
オフアウトアウトオフアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトオブアウトアウトオブアウトアウトオブアウトアウトオブアウトアウトアウトスルースルー-to-right-- ‐‐‐ 。操作メソッドが保護されたタイプまたはプライベート タイプの場合、URL を介して操作に直接アクセスすることはできません。
URL リクエスト
エントリ ファイルはプロジェクトの単一のエントリ ポイントであり、プロジェクトへのすべてのリクエストは、URL パラメータから現在リクエストされているモジュールとオペレーションを解析します。以前にアクセスした URL アドレス パラメータがないため、システムはデフォルト モジュール (インデックス) のデフォルト オペレーション (インデックス) にアクセスするため、次のアクセスは前のアクセスと同等です:
http://localhost/app /index.php/Index/index
この URL モードはシステムのデフォルトの PATHINFO モードです。 ThinkPHP は、通常モード、PATHINFO、REWRITE、互換モードの 4 つの URL モードをサポートしています。通常モード: つまり、現在アクセスされているモジュールと操作を指定する従来の GET パラメーター渡しメソッドです。例:
http://localhost/app/?m=module&a=action&var=value
m パラメーターはモジュールを表します。オペレーションはオペレーションを表し(モジュールとオペレーションのURLパラメータ名は構成可能)、次のものは他のGETパラメータを表します。 PATHINFO モード: システムのデフォルトの URL モードであり、最適な SEO サポートを提供します。システムは内部で環境互換処理をすでに実行しているため、ほとんどのホスト環境をサポートできます。上記の URL パターンに対応して、PATHINFO パターンの URL アクセス アドレスは次のとおりです:
http://localhost/app/index.php/module/action/var/value/
PATHINFO アドレスの最初のパラメータは、最初のパラメータはモジュールを表し、2 つのパラメータは操作を表します。
PATHINFO モードでは、たとえば次の設定を通じて URL をカスタマイズできます: 'URL_PATHINFO_DEPR'=>'-', // PATHINFO パラメータ区切り文字を変更します 次の URL アクセスもサポートできます: http://localhost/app/index.php/module-action-var-value/
REWRITE モード: PATHINFO モードに基づいたルールの書き換えのサポートが追加され、URL アドレスのエントリ ファイル インデックスを削除できます。ただし、WEB サーバーの書き換えルールの追加構成が必要です。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$index.php/$1 [QSA,PT,L]
次に以下のURLアドレスでアクセスできます:
http:// localhost/app/module/action/var/value/
互換モード: PATHINFO をサポートしない特殊な環境で使用されます。URL アドレスは:
http://localhost/app /?s=/module/action/var /value/
互換モードは、Web サーバー書き換えルールの定義と連携して、REWRITE モードと同じ URL 効果を実現します。
View
ThinkPHP にはコンパイル済みテンプレート エンジンが組み込まれており、ネイティブ PHP テンプレートもサポートし、Smarty を含むテンプレート エンジン ドライバーも提供します。 Smarty とは異なり、ThinkPHP がテンプレートをレンダリングするときにテンプレートを指定しない場合、その定義仕様は Tpl/モジュール名/操作名.html になります。したがって、インデックス操作のデフォルトのテンプレート ファイルは次のとおりです。 Index モジュールは、プロジェクト ディレクトリの下の Tpl/Index/index.html にあります。
例:
ビューを出力するには、テンプレートのレンダリング出力操作をコントローラー メソッドで実行する必要があります。例:
class IndexAction extends Action {
public functionindex(){
$this->name = 'thinkphp' // テンプレート変数を割り当てる
through using through out ‐ off off ‐ ‐ ‐ ‐‐ and ‐ } = 'thinkphp'; .html テンプレート ファイル。
次に、http://localhost/app/と入力します。ブラウザは出力しますhello, thinkphp!
データを読み取ります
始める前に、まずデータベースを作成します thinkphp think_data データテーブルを作成します(例として mysql データベースを取り上げます):
CREATE TABLE IF NOT EXISTS `think_data` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
INSERT INTO `think_data` (`id`, `data`) VALUES
(1, 'thinkphp'),
(2, ' php'),
(3, 'framework');
データベースからデータを読み取る必要がある場合は、次のようにデータベース接続情報をプロジェクト構成ファイルに追加する必要があります:
//データベース構成情報を追加
'DB_TYPE' => 'mysql', // データベースの種類
'DB_HOST' => 'localhost', // サーバーアドレス
'DB_NAME' => 'thinkphp', // データベース名
'DB_USER' => 'root', // ユーザー名
'DB_PWD' => '', // パスワード
'DB_PREFIX' => ', // データベーステーブルプレフィックス
または次の設定を使用します
'DB_DSN' => 'mysql://root@localhost:3306/thinkphp'
DB_DSN モード定義を使用すると、設定パラメータ、DSN パラメータ形式を簡素化できます。 : データベース タイプ://ユーザー名:パスワード@データベース アドレス:データベース ポート/データベース名。両方の構成パラメータが同時に存在する場合、DB_DSN 構成パラメータが優先されます。
次に、コントローラー メソッドを変更し、データを読み取るコードを追加します。
class IndexAction extends Action {
public functionindex(){
$Data = M('Data'); // Instantiation Data dataモデル
use using M 関数、 using ' ' を使用 ' を使用 ' を使用 ' を使用‐ モデルをインスタンス化するメソッド。M メソッドを使用してモデルをインスタンス化する場合、対応するモデルを作成する必要はありません。 M メソッドは基になる Model クラスを直接操作し、Model クラスには基本的な CURD 操作メソッドがあることがわかります。
M('Data') インスタンス化後、think_data データ テーブルを操作できます (think_ はプロジェクト構成ファイルで定義したデータ テーブルのプレフィックスです)。M 関数はさまざまな用途に使用できます。それについてもっと学びましょう。コントローラーを定義した後、テンプレート ファイルを変更し、次のようにデータ出力タグを追加します。
{$vo.id}--{$vo.data}
volist タグは、データ セットを出力するために組み込みのテンプレート エンジンによって使用されるタグです。 {$vo.id} と {$vo.data} の使用法は、データを出力するために使用されるフィールドである Smarty の使用法と似ています。ここでは、think_data テーブルの id フィールドとデータ フィールドの値を出力することを意味します。
http://localhost/app/
にアクセスすると、
1--thinkphp
2--php
3--framework
が出力されます。上記の出力が表示されたら、おめでとうございます! ThinkPHP を始めるための鍵!
概要
この記事では、ThinkPHP のディレクトリ構造、URL パターン、プロジェクト エントリ ファイル、コントローラー、テンプレートの作成方法について学習しました。データに対する CURD 操作については、後ほど学習していきます。
上記は ThinkPHP3.1 クイック スタート (1) の基本的な内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。