ホームページ >バックエンド開発 >PHPチュートリアル >PHPcms モジュール開発の予備的な概要_PHP チュートリアル

PHPcms モジュール開発の予備的な概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:17:13746ブラウズ

仕事の関係で、mongodb の研究を一時的に諦めて、PHPcms の研究を始めることしかできません。

これまでのところ、モジュールの開発はほぼ完了しています。週末にまとめを作成するために来ます。しかし、実際にはドキュメントがあまりありません。

これ以上ナンセンスはありません。phpcms モジュールを開発するには、まずモジュールのディレクトリ構造を理解する必要があります。

http://v9.help.phpcms.cn/html/2010/structural_0928/69.html からダウンロードできます

開発したいもの (つまり、モジュール) が /phpcms/modules/

の下にあることを確認します。

特別なことがない場合、モジュールを開発する前に、まずディレクトリ構造に従って関連するディレクトリを確立し、データベーステーブル構造を設計する必要があります。たとえば、my module my_test というモジュールを作成します。

mytest の下のディレクトリ構造は次のとおりです

私のテスト

--class //これはmytestモジュールで使用されるクラスです

--function//mytestモジュールで使用される関数

--install//このモジュールをインストールし、データテーブルのmyslqステートメントを作成するために必要ないくつかの設定ファイルはここにあります

-- language// 複数の言語を扱う場合に使用されます

--config.ini.php//この設定ファイルは、モジュール全体のいくつかの情報を記述するために使用されます

--extention.inc.php//これはディレクトリ構造を作成するためのものであり、このファイルはパーミッションを制御するためにも使用されます

--model.php//モジュールがどのデータモデルを使用しているか(どのテーブルが使用されているかが分かります。)

--model.sql//モデルレコードをデータベースに挿入します

--my_test.sql//このファイルはインストール中に実行され、SQLに入れられてデータベーステーブルが作成されます

--templates //、mytest モジュールで使用されるテンプレート ファイル

--uninstall //モジュールのアンインストール時に使用する設定とファイル

このファイルについては勉強しませんでした。後で勉強して補います。

my_test.php //これは mytest モジュールのバックグラウンド コントローラー ファイルです`

index.php//これはフロントエンドコントローラーです。これには何も書いていません。


このような構造を確立した後も、/phpcms/model/

にデータ モデルを確立する必要があります。

例: my_test_model.class.php (これは非常に典型的なファクトリ パターンを使用します)

それぞれのファイルに何が書かれているかを一つずつ見ていきましょう。

まず、モデルフォルダーの下に書いたファイルを見てみましょう。 コードは以下のように表示されます。

定義済み('IN_PHPCMS') または exit('権限リソースがありません。');

pc_base::load_sys_class('モデル', '', 0);
class my_test_model はモデルを拡張します {
パブリック関数 __construct() {
$this->db_config = pc_base::load_config('データベース');
$this->db_setting = 'default';//デフォルトのデータベース構成。//複数のライブラリがある場合は、ここでライブラリを選択できます
$this->table_name = 'my_test';//これはテーブル名です、テーブルプレフィックスは必要ありません
親::__construct();
}
}
?>

最初の行の機能は、phpcms の実行フレームワーク内にあるかどうかを判断することです。


2 行目はシステムのモデル クラスをロードし、次のパラメーター 0 はインスタンス化されないことを意味します。

最後の行は、親クラスのコンストラクターを呼び出します。これは phpcms/libs/classes/model.class.php にあります。

そして、このモデルクラスは、最も基本的な追加、削除、変更、検索などの多くのデータ操作メソッドを定義します。モデルの基本的な方法については後ほど詳しく説明します。

モジュールの中身を見てみましょう

以下で多言語メニューをサポートするために使用される言語を 1 つずつ見てみましょう。

次に、モジュールのインストールに関する情報が含まれる config.ini.php があります。

ファイルはこのような構造になっています

コードは以下のように表示されます:

$module = 'mytest';//使用モデル

$modulename = 'これがモジュールの名前です';

$introduce = 'モジュール説明情報';

$author = '著者';
$authorsite = '作者のウェブサイト';
$authoremail = '作成者のメールアドレス';

内側にはっきりとマークされています


次に、extension.inc.php があります。このファイルは、バックグラウンド管理メニューのディレクトリ構造を作成するために使用され、権限を制御するためにも使用されます

コードは以下のように表示されます:

$id= $menu_db->insert(array('name'=>'ここにオペレーション名を書きます', 'parentid'=>親ID, 'm'=>'モジュール', 'c'= > ;'コントローラ', 'a'=>'アクション', 'data'=>'', 'listorder'=>並べ替え, 'display'=>'表示するかどうか'),true);/ / 最後の true は ID を返すために使用されます

ファイルの最後に配列があるはずです。この配列はシステムの言語zh-cnsystem_menu.lang.phpに挿入するために使用されます。形式は次のとおりです


コードをコピー

コードは次のとおりです。 $言語 = 配列( 「これがあなたが指定した作戦の名前です」 => 「これが作戦の中国語訳です」、 類似:'mytest_init'=>'リストを表示' );

次に、model.php があります。これは、どのデータモデルが使用されているかを示します
コードをコピー コードは次のとおりです。
return array('mytest','my_test_artcle');


次に、システムのモデルテーブルにデータを挿入するために使用されるmodel.sqlがあります

コードをコピー コードは次のとおりです。
INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`)値 ();


次に、mytest.sql にデータベーステーブルを作成するステートメントをこのファイルに記述する必要があります

次に、使用するテンプレートをテンプレートに配置する必要があります。命名規則は mytest_add.tpl.php にする必要があります。

最後はコントローラーです。これは調査済みです。コントローラーには、a=? のアクションであるアクションが含まれています。 コードは以下のように表示されます:

定義済み('IN_PHPCMS') または exit('権限リソースがありません。');
pc_base::load_app_class('admin','admin',0);
class mytest extends admin(){
パブリック関数 __construct(){
parent::__construct;//親クラスのコンストラクターを呼び出します
}
パブリック関数 init(){
echo "デフォルトの操作方法は次のとおりです";
}
パブリック関数 add(){
include $this->admin_tpl('mytest_add');//テンプレートの使用方法
}
}

上記のファイルの作成が完了したら、モジュールをインストールできます。


http://www.bkjia.com/PHPjc/372002.html

tru​​ehttp://www.bkjia.com/PHPjc/372002.html技術記事仕事の関係で、mongodb の研究を一時的に放棄し、PHPcms の研究を開始することができます。今のところ、週末を利用してここに来て、まとめを作成しています。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。