WindowsのPHPでクラスを使うための準備

オブジェクト指向というとJavaを思い浮かべるかもしれませんが、PHPでも使うことができます。今回はWindowsのローカル環境に構築したPHPでオブジェクトプログラミングをするにはどうしたらよいのかを紹介します。

環境

以前に記事にしたこちらのPHP環境を使います。

WindowsのPHPでHello World! | Naokix.net

WordPressを使っている人はローカルにXAMPPが入っていると思うので、その中に入っているPHPフォルダに環境変数のパスを通して流用することができます。

クラスの宣言

PHPでのクラスの書式は次のようになります。

簡単なソースコードを見てみましょう。文字コードはUTF-8、BOMなしです。

つい$obj->$test();と書いてしまいそうになりますが、エラーが出るので注意してください。

動作するのか確認します。

クラスを別ファイルに切り離す

ひとつのPHPファイルが長くなってくると、クラスだけを別ファイルに切り離したくなるかもしれません。test.phpとhoge.phpというファイルを作成して同じフォルダに置きます。

まずはhoge.php。

次にこれを呼び出す側のtest.phpを作成します。

dirname(__FILE__)は実行しているPHPファイルの親フォルダのパスを取得できますが、末尾にスラッシュが付いていません。require_onceの第2引数の頭にスラッシュを付け忘れないでください。

さらに、ファイルが増えてくるとフォルダで分類したくなるかもしれません。testフォルダの中にhoge.phpが入っていると思ってください。

その場合にはtest.phpの3行目を次のように変更します。

コメントを書きましょう

クラスごとにPHPファイルを作成した場合、ファイルの冒頭やメソッドにコメントを記述することをおすすめします。1ヶ月前に書いたコードは他人が書いたもの同然です。

PHPライブラリを提供するサービスPEARにはAPIドキュメントを自動生成してくれる「PHPDocumentor」というツールがあります。PHPにコメントを記述する場合にはこのツールの書式にならうのが一般的なようなので、どのように書いたらよいのかをまとめておきます。

コメントの基本

PHPにおいてコメントを記述するには、行の最初に次のように記述します。

複数行をコメントとして扱いたいのなら、次のように記述してください。

phpDocumentorの記述ルール

/**からはじめます。行の先頭に*が必要で、これがない行は無視されます。//ではDocCommentにはならないことに注意してください。

実際にどのように記述するのか、例を挙げてみます。

ファイルの先頭

DocCommentでは@ではじまる「タグ」を使ってコメントを記述していきます。

@authorで<>に囲まれた部分はメールアドレスと認識されるので、連絡先などを記述しておくとよいでしょう。

クラス

メソッド

@paramの書式ですが、

のように記述します。

@returnではいくつかの型を返すメソッドの場合、mixedと書くこともできるのですが、これは避けたほうがよさそうです。配列を返すメソッドが配列を取得できずにfalseを返すような仕様だった場合にエラーを引き起こします。

@throwsを記述しておくと、メソッドを呼ぶ側がどのようなtry~catchを書くべきかを判断できるようになります。こちらの受け売りです。

最低限書いておきたいPHPのDocコメント – Qiita

命名やリファクタリングでメンテナンスの効率を上げる

オブジェクト指向プログラミングにのっとってリファクタリングをすると、どうしてもサイズの小さなファイルが増えてしまいます。これを嫌う人がいますが、わかりやすくて効果的な命名と組み合わせることでソースコードが理解しやすくなり、メンテナンス性が向上します。

オブジェクト指向はわかりにくいとよく言われますが、慣れてしまえばかなり便利なものなので積極的にクラスを活用するようにしてみてください。

「役に立った」と思ったら、記事のシェアをお願いします。

スポンサーリンク

Comment

コメント認証制です。反映されるまで時間が掛かる場合があります。
URLの記入はhttpのhを抜いて下さい(宣伝対策です)。
連続でコメントするとスパム扱いになる場合があります。
しばらく待ってからコメントしてください。

CAPTCHA


Si prega di attivare i Javascript! / Please turn on Javascript!

Javaskripta ko calu karem! / Bitte schalten Sie Javascript!

S'il vous plaît activer Javascript! / Por favor, active Javascript!

Qing dakai JavaScript! / Qing dakai JavaScript!

Пожалуйста включите JavaScript! / Silakan aktifkan Javascript!

TOP