ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changes between Version 4 and Version 5 of pne-book-9-note


Ignore:
Timestamp:
Jan 28, 2008, 5:53:33 PM (13 years ago)
Author:
imoto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • pne-book-9-note

    v4 v5  
    7676 
    7777 * pubic_htmlディレクトリについて
     78   * このpubic_htmlには、直接ブラウザから呼ばれるCSSや、JavaScriptなどが入っています。
     79   * このディレクトリは、OpenPNEを呼び出すApache側、webサーバ側がここのpublic_htmlを基点にして、呼び出すという形になっています。ですので、ここから下のディレクトリは、インターネット上に公開され、ブラウザから直接アクセスされるということを忘れてはいけません。例えば、会員のみに公開したい資料をここに置いたとしても、URL直接たたかれたら会員でない人も見えてしまうので、注意が必要です。
     80   * まず、このディレクトリの中を上から見て見ると、cmdディレクトリがあります。cmdディレクトリにはYouTube、kakaku.comとか、tabelogといった、小窓のリストが入っています。このディレクトリには、企業さんが提供してくださったもの、OpenPNEプロジェクトで開発したものなどさまざまな小窓リストが入っています。
     81   * このcmdの中に入っているのはすべてJavaScriptで書かれています。小窓の特長として、ファイル名を使いたいドメインに「.js」をつけるという規約があります。小窓の詳しい解説は小窓の作り方で説明します。
     82   * 次にcssです。このcssディレクトリにはOpenPNEで使うスタイルシートが入っています。
     83   * 次はflashです。このflashディレクトリは現在1つしかありません。現在あるフレンドリストをFlashで表示するという機能のソースがここにあります。現在このflashのソースも公開してますので、これを編集しなおしてオリジナルのフレンドリストを作ることが出来ます。(ソースのURLを紹介)
     84   * 次はimgです。このimgディレクトリはデフォルトの設定では使いません。この機能を使うときは、config.phpで設定します。OpenPNEのパフォーマンスを上げるために、画像の一時ファイルをvarディレクトリに入れるのではなくpublic_htmlに公開することで、ブラウザが直接アクセスできるようになるので、スピードが上がります。
     85   * 次はjsです。このjsディレクトリはprototype.jpなど、必要なJavaScriptが入っています。
     86   * 次はmodulesです。このmodulesディレクトリはモジュールごとに画像やファイルを置くときに使います。
     87   * 最後のディレクトリはskinです。このskinディレクトリはOpenPNEのスキンが入っています。defaultというのがOpenPNEのデフォルトのスキンが入っているディレクトリです。
     88   * 次に、pubic_html以下にあるファイルを上から見ていきます。まず、cap.phpです。Captchaの略です。このcap.phpはCaptchaを生成するためにあります。cap.phpは友人を招待するときに、波打った文字を入力しますが、あの画像を生成するためににあります。
     89   * 次に、config.inc.phpです。config.inc.phpは、config.phpを読みにいくためのファイルです。
     90   * 次に、download.phpです。download.phpはファイルアップロードのためのファイルです。OpnePNE2.8からファイルアップロード機能が追加されています。
     91   * 次がimg.phpです。プロフィール画像や日記の写真だけは、index.phpではなくて特別なimg.phpというのを読んでいます。その下にあるimg_skin.phpはスキン画像が読んでいます。
     92   * 最後にindex.phpです。現在、OpenPNEはフロントコントローラモデルというのを採用しており、このindex.phpに集約しています。(ソースを表示)
     93   * index.phpのソースを見て見ると、openpne_execute()という関数があるのが分かります。このopenpne_execute()という関数が、すべての処理を振り分ける役割をしています。openpne_executeは、webapp/libのcontroller.phpの中にあります。このpublic_htmlの中のindex.phpが呼ばれて、ここからすべてのアクションに誘導されます。
     94 * setupディレクトリについて
     95   * このsetupディレクトリはOpenPNEをセットアップするときに使用するものが入っています。中を見て見ると、主にSQLとOpenPNEをセットアップするための手順示したHTMLファイルが入っています。
     96   * sqlのディレクトリの中には、mysql40、mysql41、postgres74というディレクトリがあります。mysqlは4.0と4.1で日本語処理に違いがあるのでsqlを分けています。
     97   * 各ディレクトリにはinstall、option、update、upgradeという4つのディレクトリがあります。新規にインストールをする人はinstallの中のSQLがだけ必要です。optionには、前バージョンのPNEBIZのスケジュールをインポートしたいなどが入っています。updateには、OpenPNE2.9.1から2.9.2、2.9.2から2.9.3っていう形で、開発版のバージョンを上げるためのSQLが入っています。主に開発者が使用するSQLです。upgradeには2.6から2.8、2.8から2.10という形で、大きくバージョンが上がるときに使います。通常SNSのバージョンをあげたい場合はこちらのupgradeを使います。
     98   * 2.10からは、PostgreSQLに対応したので、postgres74というディレクトリがあります。
     99   * SQLには大きく分けて2種類あります。create_tablesというテーブルを作るSQLとinsert_dataという初期設定値のデータを挿入するSQLがあります。
    78100
    79101
    80102 * varディレクトリについて
     103    * varディレクトリには一時的なファイル、一時的なデータを置く場所です。
     104    * OpenPNEは「データはデータベースに置く」という方針を採用しています。しかし、毎回データベースに接続して読み込んでいるとスピードが遅くなることがあるので、一度データベースから読み込んだファイルはこのvarディレクトリに置いておきます。そうすることで、毎回データベースにデータを読み込みに行く必要がなくなるのでスピードが上がります。このvarディレクトリにあるのは基本的に一時的なファイルやデータなので削除してしまっても問題ありません。
     105    * 上からvarディレクトリを見て見ると、function_cacheがあります。このfunction_cacheは、functionをキャッシュするために存在します。例えば、OpenPNEにはランキングという機能がありますが、このランキングを集計するのは非常に時間がかかります。しかも、ランキングは一日に一回しか計算しないので、あらかじめ計算しておいて、このfunction_cacheディレクトリに置いています。このように、計算の難しいことや時間のかかることは一回計算した結果をこのfunction_cacheに置いておきます。そして、二回目からはデータベースを読み込まないで、ファイルを読み込んで計算結果を出しています
     106    * 次に、img_cacheです。このimg_cacheは日記やプロフィールなどの画像をキャッシュするために存在します。このimg_cacheディレクトリを見ると、まずは拡張子別で分かれていて、次に高さ・幅、サイズ別に分かれています。サイズを分けてキャッシュをとることによって性能が劣化するのを避けています。
     107    * 次に、logです。このlogディレクトリにはエラーログやメールの実行ログなどを記録するために存在します。
     108    * 次に、rss_cacheです。rss_cacheディレクトリには外部ブログを取り込んだ結果を置いておきます。
     109    * 次に、templates_cです。templates_cディレクトリにはSmartyのテンプレートを一度解析して、解析の結果を一時ファイルとして置いています。Smartyのテンプレートもキャッシュをここに置いておくことで次に読み込まれるときに、このキャッシュを読み込むので一回目にアクセスしたときより表示されるのが速いです。
     110    * 最後に、tmpです。tmpディレクトリには一時画像や一時ファイルを保存しておく場所として存在します。
     111   
     112   
    81113 * webappディレクトリについて
     114    * webappディレクトリには根幹になる部分があります。
     115
     116 
    82117 間違いやすいのが、webappの下にもlibがあるってことです。
    83118webappの下にあるlibとは違いますので、ちょっと気をつけていただきたい。
    84119webappの下にあるlibは、OpenPNEが作ったOpenPNEで利用するプラグインやライブラリになっています。
    85 
     120sqlのディレクトリ
    86121
    87122=== コードフロー ===