-----
ご利用のサーバ:ConetOS5
MODXのバージョン:revo 2.2.6
PHPのバージョン:5.3
MySQLのバージョン:5.0.95
ブラウザ:iE9,firefox
-----
稚拙な質問で申し訳ないのですが、CMSとしてのMODXを理解しようとしているのですが、MVCとしてみた場合、Mの部分(はっきりとしたmodelコード)はどこに書くのでしょうか?。
ZendFrameworkを例に取ると、MVCの各コードは置かれるフォルダもはっきりしているのですが、MODXを見た場合、Mのコードをどこに置くのか判りません。
スニペット等でphpのコードを書いて、それらでDBからデータを取る事は出来るのですが、これがMの部分に当たるのでしょうか?。どなたか教示頂けないでしょうか?。
MVCとしてのMのコードはどこに? 【解決済み】
Re: MVCとしてのMのコードはどこに?
http://rtfm.modx.com/display/revolution ... Revolution
このへんの情報が参考になるかもです
このへんの情報が参考になるかもです
Re: MVCとしてのMのコードはどこに?
手短に説明するならxPDOクラスのsetPackage/addPackageメソッドでコアに読み込まれるディレクトリがモデルの置き場所となります。modXクラスはxPDOを継承しているので、modx.class.phpを見ると自分自身でsetPackageを呼び出しているところを見ることができます。
この挙動からもわかるとおり、コアのモデルが配置されているディレクトリとコンポーネントのそれは個別になっています。コアの場合はcore/model/modx/の下に置かれており、コンポーネントの場合はcore/components/[コンポーネント名]/model/などに存在する場合が多いのではないかと思います。
先にも触れたとおり、MODXにおけるモデルはパッケージと呼ばれる単位でxPDOというORマッピングフレームワークで管理されます。
パッケージは大きくスキーマ宣言(XML)、オブジェクトクラス、そのDBMSごとの実装とマップという四つの要素で成り立っており、ディレクトリ内に無関係なファイルを置いてもスキーマに掲載されていなければ干渉しません。実際MODXのコアモデルのディレクトリにはプロセッサなどxPDOが関知しないファイルも含まれています。
参考までにxPDOにおけるモデルコードの作り方などが説明されているマニュアルはこちらです。
http://rtfm.modx.com/display/xPDO20/Cre ... +With+xPDO
この挙動からもわかるとおり、コアのモデルが配置されているディレクトリとコンポーネントのそれは個別になっています。コアの場合はcore/model/modx/の下に置かれており、コンポーネントの場合はcore/components/[コンポーネント名]/model/などに存在する場合が多いのではないかと思います。
先にも触れたとおり、MODXにおけるモデルはパッケージと呼ばれる単位でxPDOというORマッピングフレームワークで管理されます。
パッケージは大きくスキーマ宣言(XML)、オブジェクトクラス、そのDBMSごとの実装とマップという四つの要素で成り立っており、ディレクトリ内に無関係なファイルを置いてもスキーマに掲載されていなければ干渉しません。実際MODXのコアモデルのディレクトリにはプロセッサなどxPDOが関知しないファイルも含まれています。
参考までにxPDOにおけるモデルコードの作り方などが説明されているマニュアルはこちらです。
http://rtfm.modx.com/display/xPDO20/Cre ... +With+xPDO
Re: MVCとしてのMのコードはどこに? 【解決済み】
yama様,enogu様 有り難うございます。
両氏より紹介して頂きましたdocument-pageを読んで理解しようと思います。
ざっと読んだ感想ですが、MODXのMの部分は英文でも有り、ここら辺がアマチュアユーザーに高い壁に成っているような気がします。ボチボチ読んでいく事にしました。
今、やろうとしている事に、どうしてもDBとのやりとりが必要なので出来ればきれいなコードを書きたかったものですから伺ったのですが、、、、。
フレームワークは作成者の思惑が有るのでそれぞれですね。
両氏より紹介して頂きましたdocument-pageを読んで理解しようと思います。
ざっと読んだ感想ですが、MODXのMの部分は英文でも有り、ここら辺がアマチュアユーザーに高い壁に成っているような気がします。ボチボチ読んでいく事にしました。
今、やろうとしている事に、どうしてもDBとのやりとりが必要なので出来ればきれいなコードを書きたかったものですから伺ったのですが、、、、。
フレームワークは作成者の思惑が有るのでそれぞれですね。
Re: MVCとしてのMのコードはどこに?
手前味噌ですが、Confluenceの記事のいくつかは邦訳してあります。内容はMODx Revolution 2.1が出た前後くらいのものなので消滅した記事もありますが…
https://sites.google.com/site/msdnunofficial/
https://sites.google.com/site/msdnunofficial/