WordPressを MVCフレームワークに変化させる『Themosis framework』

WordPressは、その自由度の高さで単なるCMSの枠を超えて、フレームワーク的に使われることも多いソフトです。

そこで、そんな WordPressを本格的な MVCフレームワークとして使ってしまおうというフレームワークが『Themosis framework』。例えば、次のようなコードでビューを表示するようなルーティングが書けます。

Route::get('home', function() {
    return View::make('page.home', array());
});

これは、ホーム画面を表示したときにビューを作り出すプログラム。これは本格的です。

インストール方法

インストールには Composerを使います。
展開したい場所で次のように打ち込みます。

composer create-project themosis/themosis my-project-name

展開されたフォルダの「htdocs」をドキュメントルートにして、アクセスできるようにしましょう。

設定

次に、以下のファイルを編集します。

  • /vendor/.env.local.php
  • /vendor/.env.production.php

ここに、テスト環境と本番環境のデータベースの情報と、ホストの情報を記述します。最後の「WP_SITEURL」の最後は「/cms」になります(ここに、WordPressがセットアップされている)

続いて、以下を編集します。

  • /config/environment.php

ここに、ホスト名を記述します。ホスト名は、Linuxなどなら「hostname」コマンド、Windowsならコマンドプロンプトから「ipconfig/all」と打ち込むと、自分のマシン名が分かります。これを記述することで、先ほどの設定ファイルのどちらを読み込むかが、自動的に判定されます。

次が、以下です。

  • /config/shared.php

少し下にスクロールすると、WordPressユーザーにはおなじみのセキュリティキーがあります。生成ページにアクセスして、コピーすると良いでしょう。

WordPressのセットアップ

これで準備完了です。Webブラウザーからアクセすると、見慣れた WordPressのセットアップ画面が表示されるので、進めていけばダッシュボードまでたどり着くことができます。

オリジナルテーマと、プラグインが1つインストールされているのでそれぞれ有効化しておきましょう。また、WP Multibyte Patchがインストールされていないので、別途インストールしておくと良いでしょう。

ルーティング

管理画面を使っていれば、いつもと同じように感じるのですが、残念ながら投稿などをしてもそのページを見ることができません。

固定ページを表示しても、ページが見つからない

これは、「ルーティング」が設定されていないため。次のファイルを編集します。

  • /htdocs/content/themes/themosis-theme/app/route.php

最初は、次のようなルーティングが書かれているので、これに添って増やしていきます。

Route::get('home', function(){

    return View::make('welcome');

});

1番目のパラメーターには、リストから選んで対象の画面を記述します。固定ページなら「page」、投稿の個別ページなら「single」。WordPressのカスタマイズをしている人なら、おなじみのキーワードが並びます。

例えば、固定ページを表示したときに「Hello World!」というおなじみのメッセージを表示するなら、こうなります。

Route::get('page', function() {
    return 'Hello World!';
});

MVC

こうして、後は MVCでプログラムを組んでいくことができます。それぞれ、以下のフォルダにファイルが収められています。

  • /htdocs/content/themes/themosis-theme/app/controllers
  • /htdocs/content/themes/themosis-theme/app/models
  • /htdocs/content/themes/themosis-theme/app/views

面白い試みだが、独自仕様がネックかな?

WordPressを使っていると、テンプレート内がごちゃごちゃになってしまうので、CakePHPなどと組み合わせたい! と思うときはままあります。

そのため、こういう試みは非常に面白いと思います。ただ、ネックなのはかなりの独自仕様で、WordPressさえも素直な配置ではなくなってしまっていて、今後のバージョンアップなどに不安がありますね。。

できればやはり、使い慣れた MVCフレームワークと組み合わせられたりすると面白そうだなと思いました。

Comments

comments

ディスカッションに参加

1件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


%d人のブロガーが「いいね」をつけました。