「8時間耐久!PHPUnitの教室」に参加してきた!!ユニットテストだよぉ!

@yandoさんによる、8時間耐久シリーズ第三弾、「PHPUnitの教室」に参加して参りました。

8耐シリーズ第一回、第二回のレポートはこちらです。

今回のPHPUnitは、プログラムの開発を助けてくれるユニットテスト、単体テストをphp環境で実施するために使うことのできるものです。

教室では、そもそもなぜユニットテストが必要なのか、ユニットテストがない開発はなぜ石器時代的なのかという話から初めていただき(自分の開発スタイルを振り返り、そういう環境でよく頑張ったな俺・・・と思いました)、意義、意味から理解できるように始まりました。 続きを読む 「8時間耐久!PHPUnitの教室」に参加してきた!!ユニットテストだよぉ!

classのclassを開催していただいて、勉強してきた!!

こんにちは。

「8時間耐久! class の class」というイベントに参加してきました。

先生は、 @yando さん。以前にも8時間耐久CakePHP2勉強会で基礎を叩きこまれてきた!(ちなみに9時間だった!!大阪と福岡でもあるらしい)というイベントでお世話になりましたし、同じくオープンソースカフェで開かれたコードレビューの会でもお世話になりました。

安藤さんは、

  • Cakeイベントで僕のphp力を把握
  • 同じくコードレビューでころぐのソースの一部を見て、さらに把握
  • 僕が先生役をやらせてもらったWordPressのテーマ作成を見てさらに把握

という流れの中で、僕の実力と次に覚えるといい内容を教えて頂きました。

というか、スライドごとにでてくる小さな問題とか、完全に僕が分かっていないところを突いてくるなど、僕の頭の中が分かっちゃってるのかな。。 続きを読む classのclassを開催していただいて、勉強してきた!!

WordPressのネットワークで、子ブログに複数の投稿やページを設定、作っておいたカテゴリやタグを紐付けておくためのプラグイン

概要

ネットワークのカスタマイズをしている中で、

  • 新しく登録される子ブログで、デフォルトで作成される記事やページをこちら側で決めておきたい(しかも複数)、
  • カテゴリやタグも作っておいて作成された記事やページと紐付けておきたい、

という方(いるのかな。。)のためのプラグインです。

管理画面は提供していないので、記事のタイトルやURL、カテゴリなどの名前はソースに書き込む必要があります。

続きを読む WordPressのネットワークで、子ブログに複数の投稿やページを設定、作っておいたカテゴリやタグを紐付けておくためのプラグイン

WordPressのコアファイルの仕組み。3ステップでざっくりまとめ。

WordPressをダウンロードすると入っているたくさんのファイル、どんな構成になっていて、それらがどんなふうに動いているのか、まずは図を見てください。

クリックして拡大してみてください。

3ステップで理解する

ステップ1:3つのフォルダをおさえる

  • 管理画面を表示させているwp-adminフォルダ
  • 一番馴染みの深いwp-contentフォルダ(テーマやプラグイン!)
  • 色んな関数やapiが詰まっているwp-includesフォルダ

それぞれのフォルダの中にも、かなりたくさんのファイルが入ってますが、ここはヒトカラゲにざっくり捉えます。

ステップ2:ブログのトップページが表示されるフローをおさえる

ユーザがブログのトップページに訪れたときに、だいたいどんな処理が行われているのか、それが図の下半分です。
ひとつずつ読んでけば大丈夫です。

この記事の最後に、それぞれのファイルを読んでみた記事のリストがあります。

ステップ3:その他のファイルを覗いてみる

wp-login.phpはユーザ登録、wp-mail.phpは多分メール制御、などですが、ファイルを開いてみると最初にコメントで大体の機能を説明しているので、把握する。

という感じです!

各ファイルの詳細記事案内

上の図に登場するファイルをひとつひとつ読んできました。
それぞれ記事になっていますので、よろしければどぞ!

フロー図に載っているもの(ステップ2のあたり)

WordPressが動くようになるまでを、1ファイルずつ丁寧に見てます。

その他、重要そうなファイル

上のフロー図には登場してないけど、勉強すると理解が深まります!

以上です。

プラグインの研究:Absolute Privacyを読んでみる5:メンバ関数を全部読む

というわけで、一行目に戻って、プラグインの中の様々な関数の定義を読みます。

あと、前回勉強したプラグインがどうして動くのか?については、WordPress プラグイン作成時のノウハウがとっても分かりやすかったので、おすすめです。
この後編を読んで分かったのですが、

add_action( 'register_form', array(&$absolutePrivacy, 'registrationBox'));

の2個目の引数は、クラスを利用しているのでこういう書き方になっているのですね。

クラスの定義

if (!class_exists("absolutePrivacy")) {
class absolutePrivacy {

absolutePrivacyというクラスが存在していなければ、以下定義します。
続きを読む プラグインの研究:Absolute Privacyを読んでみる5:メンバ関数を全部読む