ホームページ > CMS チュートリアル > PHPCMS > phpcms にはコントローラーがありますか?

phpcms にはコントローラーがありますか?

青灯夜游
リリース: 2023-02-17 10:38:13
オリジナル
1983 人が閲覧しました

phpcms にはコントローラーがあります。 phpcms コントローラはモジュールのクラス ファイルであり、「phpcms/modules」に保存されます。各モジュールには独立した命名方法があります。クラス名は「filename.php 命名」の形式です。コントローラ クラスはシステムのクラスを継承します。デフォルトでは関数ライブラリが使用されます。直接使用できます。コントローラクラスのクラス名とコントローラファイル名は同じである必要があります。

phpcms にはコントローラーがありますか?

このチュートリアルの動作環境: Windows7 システム、phpcms v9 バージョン、DELL G3 コンピューター

phpcms にはコントローラーがあります。

phpcms のコントローラーとは

phpcms コントローラーはモジュールのクラス ファイルであり、phpcms/modules の下に保存されます。 . 各モジュールには独立した命名方法があります. クラス名はファイル名.php の命名形式になります. コントローラ クラスはデフォルトでシステムの関数ライブラリを継承し、直接使用できます。コントローラクラスのクラス名とコントローラファイル名は同じである必要があります。

新しいコントローラーの追加

次に、phpcms/modules の下に新しいテスト フォルダーを作成し、テスト フォルダー ファイル内に mytest.php という名前の新しいテスト フォルダーを作成します。ファイルに次のコードを追加します。

defined('IN_PHPCMS') or exit('No permission resources.');class mytest {    function __construct() {
    }    public function init() {
        $myvar = '这是默认加载!';        echo $myvar;
    }    public function mylist() {
        $myvar = '这是自定义list!';        echo $myvar;
    }
}
ログイン後にコピー

これで、ブラウザに次のアクセス方法を入力できます

http://domain name/index.php?m=test&c= mytest

init() メソッドはデフォルトでロードされます

http://domain name/index.php?m=test&c=mytest&a=mylist

読み込みは mylist メソッドです

テンプレートの紹介

フロントエンド テンプレート

Web サイトのフロントエンド テンプレートの場所 phpcms/templates/default/ module の下

##コントローラー mytest.php ファイルの init() メソッドに読み込みテンプレート メソッドを追加します

include template('test', 'mytest', 'default');
ログイン後にコピー

Create phpcms/templates/default/ ディレクトリの下に新しいものを作成します。test フォルダーと mytest.html ファイルで十分です。

バックエンド テンプレート

バックグラウンド テンプレート ファイルは、phpcms/modules/モジュール名/templates ディレクトリにあります

アクセス許可のあるコントローラー

バックエンド コントローラー

phpcms/modules/admin/ に新しい mytest_admin.php ファイルを作成します。ファイル コードは次のとおりです:

defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin{
    function __construct()
    {
    }
    public function index(){
        echo "后台控制器";
    }
 
}
ログイン後にコピー

アクセス アドレス: http:/ /ドメイン名 /index.php?m=admin&c=mytest_admin&a=index

phpcms カスタム モデル

クラスにモデルを導入します

pc_base::load_sys_class('model', '', 0);
ログイン後にコピー

次にこのクラスは継承モデルを拡張します。

次のコードを __construct メソッドに追加します。

$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';
parent::__construct();
ログイン後にコピー

クエリ ステートメント

function init(){
    $sql = 'select * from v9_news ';
    $data = $this->get_array_by_sql($sql);
    var_dump($data);
}
public function sql_query($sql) {
    if (!empty($this->db_tablepre)) $sql = str_replace('phpcms_', $this->db_tablepre, $sql);
    return parent::query($sql);
}
 
public function fetch_next() {
    return $this->db->fetch_next();
}
//通过SQL语句查询一条结果
public function get_one_by_sql($sql){
    $this->sql_query($sql);
    $res = $this->fetch_next();
    $this->free_result();
    return $res;
}
//通过sql语句查询数组
public function get_array_by_sql($sql){
    $this->sql_query($sql);
    $res = $this->fetch_array();
    $this->free_result();
    return $res;
}
 
//释放数据库结果资源,调用底层完成
public function free_result() {
    $this->db->free_result();
}
ログイン後にコピー
PHP 中国の Web サイトには、多数の無料の

PHPCMS チュートリアル 、オンライン学習へようこそ!

以上がphpcms にはコントローラーがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート