| 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があります。 |
| 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 | |