カテゴリー : DooPHP

【Lighttpd】WordPressやDooPHPを動かす設定

lighttpd

lighttpd

Lighttpdは.htaccessが標準で使えないです。
htscannerを入れると動くようですが、Lighttpdの設定を変更するだけでWordPressやDooPHPが動くようになります。

WordPressでパーマリンクの設定を行わなければ、問題ないかと思いますがメモとして書いておきます。

バーチャルホストの設定で、rewrite部分を追加します。

vim /etc/lighttpd/cond.d/example.com.conf

############WordPressの場合############
$HTTP["host"] == “dev.example.com”{
server.document-root = “/home/vhosts/example.com/dev/htdocs”
url.rewrite-once = (
“^/(wp-.+).*/?” => “$0″,
“^/(sitemap.xml)” => “$0″,
“^/(xmlrpc.php)” => “$0″,
“^/(.+)/?$” => “/index.php/$1″,
)
}

############DooPHPの場合############
$HTTP["host"] == “dev.example.com”{
server.document-root = “/home/vhosts/example.com/dev/htdocs”
url.rewrite-once = (
“^/(.+)/?$” => “/index.php/$1″,
)
}

サーバモジュールを有効にします。
vim /etc/lighttpd/lighttpd.conf

server.modules = (
“mod_fastcgi”,
“mod_cgi”,
“mod_rewrite”,
“mod_access”,
“mod_evhost”)

以上でWordPressなどがApacheと同じように動作します。

【DooPHP】1.3.1でPHP Fatal error: Cannot redeclare class

DooPHP - fastest MVC based PHP framework

DooPHP - fastest MVC based PHP framework

DooPHPの新しいバージョンがリリースされたので早速使用してみました。

が、、、、全く動きません、、、

エラーログを見ると、
PHP Fatal error: Cannot redeclare class
と書いてあります。

CLASS名が繰り返し使用されてます、、、
今まで普通に動いていたので新しいdooframeworkに問題があると思いきや、
deploy.phpを読み込んだ直後にエラー。

dooframeworkに付属のdemoを見てみると正常に動作しています。

しばらく悩んだ結果、index.phpに変更があったことに気づきました。

DEMOblogのindex.phpのdeploy.phpがコメントアウトされている。

//include $config['BASE_PATH'].’deployment/deploy.php’;
include $config['BASE_PATH'].’Doo.php’;
include $config['BASE_PATH'].’app/DooConfig.php’;

そして、Doo.phpとDooConfigを直接読み込みにいく形に変更。

普通はそこ変えないだろう…

まぁ動いたからいいけど。

lighttpdも入れ終わったので、
最速サーバ+最速フレームワークで最強なPHP環境を構築できた。

lighttpddoophpを入れていない方は是非お試しください。

【DooPHP】Group By 検索を使用する

doophp

doophp

DooPHPのFindでGroup Byでの検索ができないみたい、、、

ちょっとFramework変更してしまいましたが、
割と簡単に出来るようになったのでメモしておきます。

/dooframework/db/DooSqlMagic.php
の350行目あたりの
$sql =”SELECT {$sqladd['select']} FROM {$model->_table} {$sqladd['where']} {$sqladd['order']} {$sqladd['custom']} {$sqladd['limit']}”;
を下記に変更。customの位置を変更します。
$sql =”SELECT {$sqladd['select']} FROM {$model->_table} {$sqladd['where']} {$sqladd['custom']} {$sqladd['order']} {$sqladd['limit']}”;

こうすることでControllerのcustomを利用することができます。

$this->db()->find( $user,array(‘custom’=>’ group by name ‘,’desc’=>’id’));

なんで、orderとlimitの間にcustomがあるんだろう?
とりあえず応急処置としてはこれでいきます。

【DooPHP】デバッグするときに便利なログビュアー

DooPHPには便利なログビュアーが標準で付いているので使ってみた。

各種設定を済ませ、エラーレベルにあったコメントをコントローラーに書いていくだけです。

■コントローラーに記述するエラーレベル一覧
Doo::logger()->alert(‘message…’);
Doo::logger()->emerg(‘message…’);
Doo::logger()->crit(‘message…’);
Doo::logger()->err(‘message…’);
Doo::logger()->warn(‘message…’);
Doo::logger()->notice(‘message…’);
Doo::logger()->info(‘message…’);
Doo::logger()->trace(‘message…’);

■common.conf.php
$config['LOG_PATH'] = ‘/var/logs/’;

■routes.php
$route['*']['/debug/:filename'] = array(‘MainController’, ‘debug’);

■MainController.php
public function debug(){
Doo::loadCore(‘app/DooSiteMagic’);
DooSiteMagic::showDebug($this->params['filename']);
}

■destructでログの書き込みを行う
public function __destruct(){
Doo::logger()->rotateFile(20);
Doo::logger()->writeLogs();
}

■ログを見る

http://ドメイン/debug/log

■ツールを使ってみる
DooPHPをダウンロードしたときに入っている、appディレクトリの
tools/AC_OETags.js
tools/DooDebugger.swf
tools/logviewer.html
を自分のサイトのtoolsにコピーしておく

http://ドメイン/tools/logviewer.html

にアクセスして、ログファイルを選択すると、
Flashで見やすいログビュアーになる。
これを選択する→http://ドメイン/debug/log

【PHP】PHPでPDFを作成する

FPDFライブラリを使用すると、簡単にPDFを無料で作成することができます。

座標の指定で表示することもできるし、画像を挿入することもできるんですね。

ワードで帳票のテンプレートを作り、PDFにしておけば、
そのPDFを読み込んで、指定した座標にデータを入れ込むことが出来ます。

サンプルコードを載せたいが、
サイトのチュートリアルにかなり詳しく書いてあるので、
それを参考にしてもらったほうがいいですね。

これをDooPHPのクラス群に突っ込んでおくかな!


FPDF