仕事の都合上、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//この設定ファイルは、モジュール全体のいくつかの情報を記述するために使用されます
--extension.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 (これは非常に典型的なファクトリーパターンを使用します)
それぞれのファイルに書かれている内容を一つずつ見ていきましょう。まず、モデルフォルダーの下に書いたファイルを見てみましょう。
コードをコピーします
コードは次のとおりです。 ;?php defined('IN_PHPCMS') または exit('許可リソースがありません。');pc_base::load_sys_class('model', '', 0);class my_test_model extends model {
Public function __construct() { $ this-> db_config = pc_base :: load_config( 'database'); 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 を返すために使用されます
この配列はシステムの言語に挿入するために使用されます
。 コードをコピーします コードは次のとおりです:
$ language = array(
'指定した操作名は次のとおりです'=>'操作の中国語訳は次のとおりです',
類似: 'mytest_init' =>'表示リスト'
);
次に、model.php どのテーブルが使用されているかがわかります。コードをコピーします。
配列。 ('mytest','my_test_artcle');それは、model.sqlです。これは、システムのモデルテーブルにデータを挿入するために使用されます
コードをコピーします
コードは次のとおりです:
INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ();次に、データベーステーブルを作成するための mytest.sql ステートメントをこのファイルに記述する必要があります
次に、使用するテンプレートをテンプレートに配置する必要があります。命名規則は mytest_add.tpl.php である必要があります。
最後はコントローラーです。これはよく研究されています。コントローラーでは、各 URL に渡されるアクションです。これは、init です。
コードをコピーします。コードは次のとおりです:
define('IN_PHPCMS') または exit('許可リソースがありません。');
pc_base::load_app_class('admin','admin',0);class mytest extends admin(){ public function __construct(){ parent::__construct;//親クラスのコンストラクタを呼び出す }
public function init(){
echo "これがデフォルトの操作メソッドです";
}
public function add(){
include $this->admin_tpl('mytest_add');//テンプレートの使用方法
}
}
上記のファイルの作成が完了したら、コントローラーをインストールできます。モジュール。
http://www.bkjia.com/PHPjc/326762.html
www.bkjia.com
本当http://www.bkjia.com/PHPjc/326762.html
技術記事仕事の関係で、mongodb の研究を一時的に放棄し、PHPcms の研究を開始することができます。今のところ、週末を利用してここに来て、まとめを作成しています。 ..
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。