開発環境整備する zendを動かしてみる
なんか一度書いたエントリーがきえてるっぽいですなぁ
zendのテスト
php.iniに
/etc/php5/apache2/php.ini
include_path = ".:/usr/lib/php5/ZendFramework/library"
httpdに設定する。
ubuntuのapache2は/etc/apache2/apache2.confみたい。httpd.confは空でした
DirectoryIndex index.php index.html index.htm
AddType application/x-httpd-php .php
でいいかな
確認
get(Zend_Date::RFC_2822);
echo "
";
?>
なものを用意して動かす。大丈夫そうですね。
DB接続確認
mysqlにzendtestデータベースを作成
testテーブルも作成と5行ぐらい入れておく。
ユーザーを作成。
もちろんphpmyadminで作ります。
適当にフォルダでも掘ります。最後は安全なところに持って行くのだとおもいます。
このまえzendで遊んでいた頃に用意したものを流用します。
; 基本設定情報 [global] ;base_path = "/usrdoc/zendpractice/public/" ;;いらね base_path = "/var/www/zend/" ;;要らないだろうけど ;path = "http://192.168.11.202/zendpractice/public/" ;;不要 ;view_path = "../application/views/scripts/" ;;不要 ; データソース設定(DB動作確認用テスト) [datasource] database.type = Pdo_Mysql database.host = 127.0.0.1 database.username = zenddev database.password = zend database.name = zendtest database.charaq = "set names 'utf8'" ;;;; データソース設定(DB1) ;;;[tendodb] ;;;database.type = Pdo_Mysql ;;;database.host = 127.0.0.1 ;;;database.username = zenddev ;;;database.password = zend ;;;database.name = zendtest ;;;database.charaq = "set names 'utf8'" ; ログファイル設定 起点がいつも混乱する../なのか [logfile] all = "/var/www/zend/log/zend_practice_log_all_" danger = "/var/www/zend/log/zend_practice_log_danger_" maillog = "/var/www/zend/log/zend_practice_log_maillog_"
//commonなphp <?php /** * common class * commonなエトセトラ */ //require for Zend Loader //require_once 'Zend/Loader.php'; //not use class MyConfig { public function getConfig($source = null){ //require for config require_once 'Zend/Config/Ini.php'; //init config $config = new Zend_Config_Ini('./common/config_dev.ini',$source); //var_dump($config); return $config; } } //執拗なtry nakas遺伝子 class MyLogger{ //loggerのインスタンスを返す public function getLogger($type='logfile'){ //logはとっておけ。 $logger = null; //require for log require_once 'Zend/Log.php'; require_once 'Zend/Log/Writer/Stream.php'; try{ $instance = new MyConfig(); $config = $instance->getConfig($type); $logger = new Zend_Log(); $alllog = new Zend_Log_Writer_Stream($config->all . date("y_m_d") . '.txt'); $dangerlog = new Zend_Log_Writer_Stream($config->danger . date("y_m_d") . '.txt'); $maillog = new Zend_Log_Writer_Stream($config->maillog . date("y_m_d") . '.txt'); $logger->addWriter($alllog); $logger->addWriter($dangerlog); $logger->addWriter($maillog); //ユーザー定義メール記録 $logger->addPriority('MAIL',9); //addfilter $dangerlog->addFilter(Zend_Log::CRIT); $filter = new Zend_Log_Filter_Priority(9); $maillog->addFilter(Zend_Log::WARN); }catch(Zend_Exception $e){return false;} return $logger; } //直接書き込み public function logInfo($string){ try{ $logger = MyLOgger::getLogger(); $logger->log($string,Zend_Log::INFO); }catch(Zend_Exception $e){return false;} return true; } //直接書き込み danger public function logDanger($string){ try{ $logger = MyLOgger::getLogger(); $logger->log($string,Zend_Log::CRIT); }catch(Zend_Exception $e){return false;} return true; } //直接書き込み mail public function logMail($string){ try{ $logger = MyLOgger::getLogger(); $logger->log($string,4); }catch(Zend_Exception $e){return false;} return true; } } class MyDb{ public function getDb($type = 'datasource'){ $db = null; //require for db require_once 'Zend/Db.php'; //webなのでtry try{ $instance = new MyConfig(); $config = $instance->getConfig($type); $params =array('host' => $config->database->host, 'username' => $config->database->username, 'password' => $config->database->password, 'dbname' => $config->database->name, ); $db = Zend_Db::factory($config->database->type , $params); //よくありがちな初期設定はしておく $db->query($config->database->charaq); $db->setFetchMode(Zend_Db::FETCH_ASSOC); }catch(Zend_Exception $e){ MyLogger::logDanger('DB接続不全'); } return $db; } //明示的にクローズする場合 たぶん自動クローズは。。。どうなんでしょうね? public function close($db){ $db->closeConnection(); } }
<? //@zenddbtest.php require_once './common/common.php'; /*logger動作確認 echo Mylogger::logInfo('direct')."\n"; echo Mylogger::logDanger('direct')."\n"; echo Mylogger::logMail('direct')."\n"; /*db説続テスト $db = MyDb::getDb(); //var_dump($db); $sql = 'select ' . '*' . 'from ' . 'test'; $result = $db->fetchAll($sql); ar_dump($result); MyDb::close($db); ?>
大丈夫そうですね。
今日はここまで。明日はtwitterにつないでみます。
pearでうれしくtwitterさせてくれるライブラリを入れたのですが、つないでみて、「なんか違う」という違和感を持っている今。