2008-01-01から1年間の記事一覧

CakePHPでメソッドチェーン風にヘルパーを使う

..(略)...結論から言えば、このクラスを利用することで、上記の処理は以下のように記述できます。 mb_substr(0, 100)->mb_convert_kana('a')->h()->n()->e(); ?> 括弧の数が合わないというエラーから解放されます。 マジックメソッドを多用するので場合によ…

テンプレート中のPHPタグのインデント

php

symfonyやCakePHPではテンプレート機能として素のPHPを使うのが基本となっています。 色々意見はあると思いますが、PHPそのものがHTMLに埋め込みやすいという点が大きいところです。その中で気になる点があります。それはPHPタグのインデント方法についてで…

両方のステータス更新するだけスクリプト

twitterではTwitterPod, wassrではwasacoを使ってます。ただ、発言するのに両方に入れるのも面倒なのと、そのためだけにクライアントソフトを乗り換えるのは面倒なんで両サービスのステータスを更新するスクリプトをrubyで作成。ステータス更新だけが目的な…

sfFormのメッセージの日本語化

以下のようなメッセージファイルを/i18n/form.ja.xmlに用意し <xliff version="1.0"> <file orginal="global" source-language="en_US" datatype="plaintext"> <body> <trans-unit> <source>Required.</source> <target>未入力の必須項目があります</target> </trans-unit> <trans-unit> <source>Invalid.</source> <target>入力した値を再度確認してください</target> </trans-unit></body></file></xliff>

ローカルでのコミットを1つにまとめてSubversionにコミットする方法

個人のリポジトリならいいんですが、共有しているリポジトリではコミットはある程度"意味のある単位"で行った方が親切です。 「もう帰るけど作業は途中。とりあえずコミット」をされて、そうとは知らずに、中途半端な動かないソースでアップデートしちゃった…

 symfony1.2は今月リリース?

予定ではsymfony1.2は10/26にリリースされる予定なんですが、1.0から1.1に移行するときにように1.1から1.2にアップグレードするときにどう変更がされているかについてのドキュメント(UPGRADE_TO_1_2)が附属しています。せっかくなのでリリース前に現在のリビ…

ネットワークが不安定な場合の対処

何が原因かはわかりませんが、まれにゲストから外部への接続が不安定になるときがあります。一時的なものだったらいいのですが、どうも一旦調子が悪くなるとホストを再起動させないと駄目なようです。標準で用意されているboot.shで再起動する手順メモ。 Vmw…

symfony 1.1.4 released

symfonyの1.1系がリリースされています。 セキュリティfixなので1.1系以上を使っている人はお忘れなく。ref:http://www.symfony-project.org/blog/2008/10/03/symfony-1-1-4-released-security-fixちなみにどこが問題かというとsfFormのValidatorで利用でき…

特定のDIV内のアンカーがクリックされたらDIV自身を非表示

次のようなHTMLがあって <body> <div class="panel"> <div> <a href="#">test1</a> <a href="#">test2</a> <a href="#">test3</a> </div> </div> <div class="panel"> <a href="#">test4</a> <a href="#">test5</a> <a href="#">test6</a> </div> <div class="panel"> <a href="#">test7</a> <a href="#">test8</a> <a href="#">test…</a></div></body>

コンポーネントやパーシャルの呼び出しが便利になっている件

多用することがいいかどうかは別として、symfony1.1からはコントローラー内から簡単にパーシャルやコンポーネントのレンダー結果を取得することができるようになりました。つまり、次のようなメソッドが用意されたということです。 // in action public func…

リファクタリング

つい最近 本家のblogにsymfonyでのリファクタリング方法についての実例が5日間にわたって紹介されました。もちろんsymfonyを使っている方はもちろん参考になりますし、ファビアンが言いたいことなんかはsymfonyに関係なくリファクタリングのポイントでまと…

sfFormを楽して可読性を向上させる

1週間ぐらいsfFormと向き合っているにもかかわらず、仲良くなれてない。一通り使うまでしょうがないとわかりつつ。。そして、symfonyの学習コストは確実にあがっていっている気がする。 ただし、プログラマとしてsymfonyのソースを読み解いたり、実装を理解…

お仕事募集中

業務委託(ニート??)のような形態で仕事をしていますが、もっと人脈を増やさないといけないと色々痛感中。 もちろん仕事につながることも大切ですが、そうでなくても勉強会やイベント(飲みでの会話など)で刺激を受けないと面白くない。正社員じゃなくなっ…

バッチのタスクでデータベースを使う場合

symfony1.0系とそれ以降の違いで大きなものの1つがバッチ処理の管理方法です。 1.0系ではバッチ用のコントローラーをbatchディレクトリに作成していましたが、1.1系以降ではタスク(コマンド)で管理します。もちろん、初期化コマンドが用意されているのでg…

[symfony1.1][Doctrine] DQL??

Doctrineは直感的なんだけど、DQLを覚えるのが面倒だなぁとぼやいてみる

symfony1.0から1.1に慣れる ~ その1 ~

そのうちwikiにまとめた方が有用なんでしょうが、とりあえずここにメモ。 タスクはhelpで確認する symfony1.1からタスクの利用方法がhelpオプションを指定することで確認できるので見ておいたほうが幸せになれる $ ./symfony help <タスク名> エスケープの設…

アドミンジェネレータの日本語化

symfony1.1でもアドミンジェネレータはsymfony1.0と同じなので日本語メッセージファイルも同じものが使えます。 ただし、symfony1.1からはi18n.ymlを使わないなど設定方法が多少異なるので注意。日本語化したメッセージが欲しい方は アドミンジェネレータの…

単数形に変換されないようにする

symfony1.1を使い始めると同時にDoctrineに乗り換えました。 Propelに比べたらかなり直感的ですし、明らかに学習コストも低いですね。 もちろん、Propelだけにしか対応していないようなプラグインも多々あるので、その辺りと天秤にかけて決定すると良いよ。…

phpxrefでドキュメント生成

このお盆で1.1系を使ってみようかと思ったのですが、ソース全体をざっくりと見れるようにphpxrefにsymfonyのソースを流してドキュメントを作成しました。ついでに1.0系も作成してみました。symfony1.0.17のphpxref symfony1.1.1のphpxrefブラウザで見れるこ…

新しいプラグインページ

Skypeのsymfonyチャット部屋で知ったのですが、プラグインページが一新されました。http://www.symfony-project.org/plugins/symfonyのプラグインという機能はとても便利で数も多いのですが、 利用中のバージョンで使えるのか、はたまたβ版なのかなど、以前…

DEBUGが0のときのエラーロギング(CakePHP 1.1)

CakePHPではcore.phpにてDEBUGの定数を変えることで、製品版、開発版などの振る舞いを変えることができます。これは便利なのですが、製品版(DEBUG=0)にすることで困る事がありました。 それは、error_reportingの設定が勝手に書き換えられ、error_reportin…

WindowsからMacへVNC接続時ではまる

mac

リモートアクセスってほんま便利です。 リモートアクセスとは物理的に離れたPC間で遠隔操作できるようにするということで、VMwareなどのような仮想環境とは異なります。 よくあるパターンが、外から自宅のPCそのものへログインするとか、社外から社内のPCに…

お詫びとお礼

最初から読んでいき、後半に実際にプログラムを作っていくような感じになっているんですが、ちょっと誤植が多すぎる気がします。 ご指摘の通りです。校正時に確認が足らなかった私自身に原因があります。 本当に申し訳ありませんでした。 また、誤植について…

forとforeach

php

今日、社内で「PHPの配列をループで回すのにforを使うか、foreachを使うか」という話が面白かったので、メモ。 私は基本foreachです。PHPに慣れてしまったせいかもしれませんが。。。 もし、forを使うとしたら とするよりは

Google App Engine

まだまだ先かなーと思っていたらアクティベートされてた。 よし。何かつくる。 Hello,Thanks for signing up to try Google App Engine! Your account has been activated, so you can begin building applications!

Propelをより直感的に扱うプラグイン

最近PropelでもDoctrineのようにメソッドチェーンを使うことでよりCriteriaより直感的に記述できるプラグイン http://trac.symfony-project.com/wiki/sfPropelFinderPluginがリリースされました。上記ページで紹介されている、このプラグインで書かれたサン…

ファイル開いて文字化けしてたら

vim :e ++enc=文字コード emacs C-x return r 文字コード

第1回 symfony勉強会資料

symfony勉強会に参加&発表してきました。今回、初めてこのような勉強会で発表する機会をいただきました。私は、声小さかったり、早口であったり、挙動不審だったり、内容が薄かったりと駄目っぷりを晒す結果でした。 orz発表したスライドは以下からPDFで見…

symfonyのエスケープ設定

symfonyにはXSS対策として、アサインした変数の値をテンプレートで利用するときにエスケープする設定があります。 しかし、この機能自体は途中で実装されたため、symfony1.0ではデフォルトではBC(後方互換モード)に設定されています。 bcモード $sf_data経由…

symfony1.1が気になる?

BETA2がリリースされていますが、symfony1.0系からアップグレードする手順がBETA2のパッケージに含まれています。英語: http://trac.symfony-project.com/browser/tags/RELEASE_1_1_0_BETA2/UPGRADE 日本語: http://code.google.com/p/symfony-doc-ja/wiki/U…