Archive for the ‘cakephp’ Category

PDTでcakephp1.2のヘルパー補完

7 月 30th, 2008 by admin

eclipseに変数が何のオブジェクトであるのかを認識させるために,動作しないphpファイルを作成するという方法があります。

参考 [CakePHP][Eclipse]Eclipse PDTでCakePHP開発、まず設定すべきこと

1.1系に対応したファイルが紹介されていて,1.2でもかなりそのまま使えるのですが,paginatorの補完が欲しくなったので,1.2用に追加・改変してみました。
phpの閉じタグがないのは,zendのコーディング規約によるものです。気になる方は付加してください。


<?php
// stop page loading
exit;


// reference helpers so Eclipse provides code completion
$ajax = new AjaxHelper();
$cache = new CacheHelper();
$form = new FormHelper();
$html = new HtmlHelper();
$javascript = new JavascriptHelper();
$js = new JsHelper();
$number = new NumberHelper();
$paginator = new PaginatorHelper();
$rss = new RssHelper();
$session = new SessionHelper();
$text = new TextHelper();
$time = new TimeHelper();
$xml = new XmlHelper();

cakephpを日本語かつレンサバで使う場合にすること。

7 月 26th, 2008 by admin

realpath周りの修正。 エラーを吐く場合だけで良いけれど。

default.thtml or default.ctpの修正。 metaタグの中にあるcharsetをtitleの前に移動。文字化け防止。

database.phpにencoding情報を追加。 ’encoding’ => ‘utf8′ 日本語使う以上,必須。utf-8じゃなくutf8。

MediaTempleでcakephpを使う方法

7 月 26th, 2008 by admin

sub.example.comで運用するとする。

管理画面から,サブドメインを追加。

ドメインができたらFTPをつないで

example.com/domains/sub.example.com

に,全部をアップロード。

次に,SSHでログインしてアップロードしたディレクトリに移動。

そして,最初からあるhtmlディレクトリを削除。

rm -rf html/

代わりに,app/webrootへのシンボリックリンクを作成する。

ln -s app/webroot html

これで

sub.example.com

にアクセスしたときに,webrootの中身が表示されるようになる。

cakephp1.2で西暦を和暦に変換するヘルパー

7 月 9th, 2008 by admin

データは西暦で保持しているけれど,表示は和暦と言うことが多い。
特に,法律関係のシステムでは。
どの段階で和暦に変換するかいつも迷うが,基本的にはviewの役割だろうということで,ヘルパーにしてみた。

他にも追加する予定なので,ファイル名は
Date.php
で。
車輪の再発明だと思うけど。
明治とか,大正とかの対応もすぐできるだろう。
もっと古い時代までいくなら, 元号=>年 という配列にして,ぐるぐるする方が早そう。

class DateHelper extends AppHelper
{
function wareki( $year ) {
$tmp_year = $gengo = null;
if($year > 1988) {
$gengo = '平成';
$tmp_year = $year - 1988;
} else if ($year > 1925) {
$gengo = '昭和';
$tmp_year = $year - 1925;
}
if($tmp_year == 1) {
$tmp_year = '元';
}
return $this->output($gengo . $tmp_year . '年');
}
}

coreserverでcakephp 1.2を使う

7 月 8th, 2008 by admin

そのまま使おうとすると,phpがsafemodeな関係で,realpathがエラーを大量にはく。
最初は「cakephp on xrea memo」を参考にcgiとし動かすことでで対応していたのだけれど,cgiとして動かすと微妙にもっさりした挙動になるので業務用としては実用にならないと判断して修正。
(予算ないからxreaとかcoreserverで動かせ!という仕事をしてるせいなんだけど。)

cake/libs/configure.phpに追加。


if ( $path=='/usr/local/php/bin') {
continue;
}
if ( $path=='/virtual') {
continue;
}
if ( $path=='/tmp') {
continue;
}
if ( $path=='/usr/local/lib/php') {
continue;
}

追加する場所は476行目くらいだったかな。

if (empty($path) || $path == '.' || in_array(realpath($path), $used)) {
continue;
}

の直前あたりに。
あとは,エラーメッセージをみながら必要なディレクトリを作っておしまい。
cakephpのエラーメッセージはとても親切。

cakephp 1.2 form->labelについて

7 月 8th, 2008 by admin

1.1では form->labelTagだった。
形式は
form->labelTag(’Model/FieldtName’)
でも,
form->labelTag(’Model.FieldtName’)
でも使えるみたい。