読者です 読者をやめる 読者になる 読者になる

dari88's diary

これから趣味にするプログラミング/PHP/javascript/kohana/CMS/web design/

kohanaのテスト12-4・・・kohanaのWordPress化計画進行中

 今日は WordPress の新規投稿ページを kohana で再現する作業に取り組んでいます。JavascriptAjax の技術をふんだんに使っており、結構ハードルが高いです。

 先ずは新規投稿ページのソースコードを取り込んで、kohana で表示させます。次に、WordPress のディレクトリから持ってきているスタイルシートやスクリプトのリンクを昨日準備した /includes から持ってくるように書き換えます。昨日作ったオートローダーが活躍します。

 一つ修正したら、必ずブラウザで再読み込みして変化が無いか確認します。オートローダーでスタイルシートを持ってきたら、アイコンが表示されなくなりました。調べてみると、スタイルシートって中に URL が書いてあったりするんですね。知りませんでした。

 よく見ると、WordPress のオートローダーはこの URL を適切に書き換えていました。早速 kohana 用のオートローダーを修正しました。昨日の日記の方も修正してあります。今日はサンプルコードとか無いので、kohana のフォルダ名ークラス名ーメソッド名の関係を整理しておきます。

 

kohana のフォルダ名ーファイル名ークラス名ーメソッド名の関係

 下の図は classes フォルダの下のフォルダ名ーファイル名ークラス名ーメソッド名と呼び出しの関係を端的に表現したものです。

controler/
  l
  +-page1.php
  l   class Controller_Page1
  l     function action_index()
  l       → http://host/kohana/page1
  l     function action_memo()
  l       → http://host/kohana/page1/memo
  l
  +-blog/
  l   l
  l   +-page2.php
  l       class Controller_Blog_Page2
  l         function action_index()
  l           → http://host/kohana/blog_page2
  l         function action_memo()
  l           → http://host/kohana/blog_page2/memo

contents/
  l
  +-page3.php
  l   static class Contents_Page3
  l     static function blogpage
  l       → Contents_Page3::blogpage()
  l     static function snipet
  l       → Contents_Page3::snipet()

  kohana はフォルダ名ーファイル名ークラス名ーメソッド名の命名法に一定の規則を設けることによって必要なクラスのオートローディングを実現しています。このおかげで使う側は phpファイルのインクルードを一切考えないで済みます。規則に従って命名したクラスを書いて、単に呼び出すだけ。実にシンプルです。