つるぺた幼女でもわかる!ZendFrameworkの基礎知識 (zf-users.jp 取ったんだぜ)

zf-users.jp

幼女に反応してやった来たひとこんばんは。

さぁ、もうそろそろ飽きられつつある *-users.jp。
めざせ13ブクマ。

日本で、というか世界でもCakePHPとSymfonyが強そうだねとか思って、ZendFrameworkユーザーがあまり多くない。(と思う。)

コミュニティも特にないヨネって思ってたところに -users な流れがきたのでタイミング良かった。

http://zf-users.jp/

まだ何もない。うん。例のごとく勢いで取った。未定。
とりあえず、ZendFrameworkユーザー集まってみないかい?

IRCにくるんだ。

freenodeの #zftalk-ja だ。
作ったばかりで全然人いないけどね。じっくり待つ。

s.h.log: IRCを使おう Windows編
s.h.log: IRCを使おう Mac編

ZendFrameworkのindexにあるグローバルな奴らを考える

ZendFrameworkはindex.phpでフロントコントローラーを作って、そこからリクエスト内容を見てコントローラー・アクションを分けていくんですが、index.phpに色んな設定を書いていくとグローバル変数が何個もできます。

 
< ?php
// Zend_Session
Zend_Session::start();
 
$admin = new Zend_Session_Namespace('admin');
Zend_Registry::set('admin', $admin);
 
// Zend_Config
$config = new Zend_Config_Ini($dir . '/config/config.ini', 'production');
Zend_Registry::set('config', $config);
 
// Zend_Layout
Zend_Layout::startMvc(array('layoutPath' => $dir . '/layouts'));
 
// Zend_Db
$dbAdapter = Zend_Db::factory(Zend_Registry::get('config')->database);
Zend_Registry::set('dbAdapter', $dbAdapter);
 
/**
 * Setup Controller
 */
$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory($dir . '/modules');
$front->throwExceptions(true);
// run
$front->dispatch();
 

Zend_Registryでどこからでもアクセスできるようにはしてるけど、グローバル変数が残ってることにはかわりない。

起動ファイルのコードのスコープ - いしなお! (2007-06-06)

ここにも書いてある。なんか気持ち悪い。

で、bootstrap.phpを作ってindex.phpから読み込むことにする。

ディレクトリ構造はこんな感じ

Directory

index.phpはbootstrap.phpを読み込むだけにするので

 
< ?php
set_include_path( /* path */ );
require_once "../application/bootstrap.php";
Bootstrap::init();
 

とかだけにしておく。

boostrapの中でクラスを作ってそこで設定を初期化する。

 
< ?php
/**
 * Bootstrap Class
 */
class Bootstrap {
 
    static public function init()
    {
        // なんか初期化的な処理をゴリゴリ
    }
 
}
 

Bootstrapの中でも処理ごとにメソッドをわけておいたほうが後から変更するときに分かりやすくていいかな。

ApacheのDescriptionとかを表示する

LinuxだとApache入れたときには普通に表示されてたと思うけど、MacPortsで入れたApacheはファイル名だけしか表示されてなくてこんな状態になってた。

Apache

Linuxだと更新時間とか表示されてたじゃん!なんでおまえ真っ白なんだよ!ってずっと思ってた。
で、会社の人に聞いたらやり方わかった。

/opt/local/apache2/conf/httpd.conf

このhttpd.confの440行目ぐらいにある

#Include conf/extra/httpd-autoindex.conf

これのコメントアウトを外して、autoindexを有効にすればいい。で、apache再起動すると・・・

apache

ktkr!!

autoindexでちょっと遊べるみたいだけど、眠いからまた今度書く。