RのWeb制作ホームWeb制作RのWeb制作Webサービス制作のための技術情報を。2013年11月11日PHPのコーディング規則、PSRを学ぶ(2)の続きです。2を日本語に翻訳してみましたさんのPSR-0(日本語)を読んでみます。1.本文の冒頭を読んでみる以下、オートローダー連携のための要件を説明します。完全な名前空間とクラス名のために下記構造としてください。\<ベンダー名>\(<名前空間>\)*<クラス名>いずれの名前空間もトップレベルの名前空間である「ベンダー名」を持つ必要があります。名前空間は複数の自由な名前空間を持つことができます。名前空間の区切りは読み込まれる際に、「DIRECTORY_SEPARATOR」に変換されます。クラス名に含まれるアンダースコア「_」は、「DIRECTORY_SEPARATOR」に変換されます。アンダースコアは特別な意味を持ちません。名前空間とクラス名に「.php」をつけて完全なファイルとなり読み込まれます。ベンダー名、名前空間及びクラス名のアルファベット文字列における小文字・大文字の組み合わせは自由です。2.冒頭を読んでみて考えてみる疑問点1:「ベンダー名って何?」IT業界では、ハードウェアや・ソフトウェアの供給元企業を「ITベンダー」と呼ぶ。対義語は「ユーザー企業」。(Wikipediaより)つまり、個人製作の場合「自分の名前またはサイト名」をベンダー名として付ければいいのか。いうことをするのか?を考えてみると・・・PHPは同じ名前の関数やクラス名を指定すると「二重定義」でエラーが出ます。これが「名前空間の汚染」防止なのかもしれません。名前空間は複数の自由な名前空間を持つことができます。見た感じ、機能の名前を付けていい感じですね。「Zend」という製品の「Mail」機構の「Message」機能というわけですね。それを、「~/Zend/Mail/Message.php」から読み込むようにしなさいと。それなら誰でもどこから読んでいるか理解できるし。あと、「\Zend\Acl」のように機構を分けなくてもいいくらい短ければ、「~/Zend/Acl.php」から読み込むようにしなさいと。名前空間の区切りは読み込まれる際に、「DIRECTORY_SEPARATOR」に変換されます。クラス名に含まれるアンダースコア「_」は、「DIRECTORY_SEPARATOR」に変換されます。アンダースコアは特別な意味を持ちません。直訳すると「DIRECTORY_SEPARATOR」=ディレクトリの区切り・・・これでなんとなくわかったような気がします。・「\<ベンダー名>\(<名前空間>\)*<クラス名>」の構成で、ディレクトリが区切られる・クラス名のアンダースコア「_」はディレクトリの区切りになる・名前空間の中のアンダースコア「_」はディレクトリの区切りにはならない3つのことが示されているわけですね!私のサイトとこの記事で言い換えると、「\Rei-Farms(ベンダー名)\BLOG(名前空間)\Web製作_PSRの説明(クラス名)」とクラス名を設定して、ファイルは「/Rei-Farms/BLOG/Web製作/PSRの説明」にあると。それだったら他人のコードを読んでいても混乱する可能性が非常に低くなりますね。3.最後まで読み進めてみるここでは余計な混乱を防ぐための最低限のオートローダー連携基準を示します。5.3上におけるSplClassLoader実装例により、これらの基準を確認することができます。以下は、上記基準に従ったクラスのオートロードにおける振る舞いを確認するための例です。</textarea>SplClassLoader実装について以下のgistで、上記のオートローダー互換運用を満たした上で実装クラスがロードされるというSplClassLoaderの簡単な実装例を示します。5.3クラスをロードするための推奨方法となります。http://gist.github.com/221634「これまでの基準(上記)に適合したクラス設定をしても大丈夫な”クラス名ローダー”を作ってね」というわけですね。「http://gist.github.com/221634」に推奨の方法があるよとも書かれています。4.「http://gist.github.com/221634」にアクセスするOK!英語だ!/(^o^)\英語が苦手だとどうしても読むのをためらいますよね。重要なことは先頭付近に書いてあることが多いです。重要そうなところを抜粋してみます。Commonパッケージ”の”Doctrine\Commone”のクラスをロードする例。‘/path/to/doctrine’);$classLoader->register();上記のように、このSplClassLoader.phpのクラスSplClassLoaderを使えばこの基準通りにクラス名が設定できるというわけですね。これは試してみるしかない!と思いましたが、そろそろ長くなってきているのでこれにて終了します。次は、実際に「クラス名定義を自宅サーバーで試してみる」を行います。PHPのコーディング規則、PSRを学ぶ(3)の続きです。今回は実際にクラス名定義を自宅サーバーで試してみます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト関連記事[PHP]まとめ読みをPSRで改良する(3)(2)の記事から「PDO」を使い、データの通信をオブジェクト化しました。password_hashを使い、パスワード処理の暗号化も行いました。ランダムフォレスト実力不足感が否めませんが、Kaggleのチュートリアル的なTitanicにおいてランダムフォレストで正答率約80%を出せたのでコードを載せておきます。...[Meisyo]練習難易度の不均衡是正への分析的アプローチ「練習ごとに難易度が違いすぎるんですけど!!」という不満は把握しています。これまでそこには触れてきませんでした。...PHPのコーディング規則、PSRを学ぶ(4)PHPのコーディング規則、PSRを学ぶ(3)の続きです。今回は実際にクラス名定義を自宅サーバーで試してみます。「http://rei-farms.jp/」を独自ドメインとして取得しました。...PREV二ヶ月目の総括NEXTPHPのコーディング規則、PSRを学ぶ(4)筆者情報ご連絡はこちらまで。RSSWordPress.orgホームWeb制作RのWeb制作Webサービス制作のための技術情報を。