2009年04月29日

冴えたページングテクニック

ただものではないmarianoのページングテクニックが公開されています。CakePHPユーザなら一度は見るべき。

marianoiglesias
Pagination with custom find types in CakePHP


protected $_types = array(
'published' => array(
'conditions' => array('Post.published' => 1),
'order' => array('Post.created' => 'desc')
)
);

とするだけで、


$posts = $this->Post->find('published');

と、

$this->paginate['Post'] = array(
'published',
'limit' => 10
);

ができてしまうという、超絶テクニックを公開しています。

ラベル:cakephp
posted by SDozono at 21:58| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP Model | このブログの読者になる | 更新情報をチェックする

2009年04月15日

Small small Cake

Cakeが成長を続けてはや3,4年。機能を充実させてゆく、というのはコードが増えてゆく、という意味になる。

すると、今度は「使う機能だけに絞り込んだ同等機能を持つフレームワークのほうがスピード速いのでは」という話に。

日本でも「ちいたん」が生まれた。
http://php.cheetan.net/
「私は普段CakePHPを使用していますが、それを使用するほど大きなプロジェクトではなく、でも多少手のかかる物の場合に使えるフレームワークがほしい… そんなときに使えるフレームワークを目指して作成」

こちらでは、「Cakeの80%のAPIを使えるように」する“ミニCake”を作りはじめた人がいます。

baseappframework
Very Small and Minimalitic PHP 5 Framework with CakePHP inspired API.
"CakePHP API ( 80 % ) and Layout"
http://code.google.com/p/baseappframework/
http://www.ngcoders.com/projects/baseapp/baseapp-php-framework-simple-small-swift

「8割がたのCakeAPIを使える。スピードは高速。Cakeの別なAPIが必要になったら、フレームワークに自分でコピペしてね」というようなフレームワークのコンセプトは面白い。
ラベル:cakephp
posted by SDozono at 10:25| 東京 ☀| Comment(4) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2009年04月13日

Redmine BTS on a cheap PHP server

A CakePHP users group in Japan are trying to port Redmine(Ruby on Rails) to CakePHP.

Already the main part of the BTS is working at a cheap PHP4 shared server with CakePHP.
You can see the screenshot at following page.

diary of yandod
http://d.hatena.ne.jp/yandod/20090412/1239516664




ラベル:cakephp redmine BTS
posted by SDozono at 09:28| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2009年04月09日

CakePHPユーザ日本全国

CakePHP.jpのXOOPSサイトには、Geo Visitorsのリンクを貼っています。海外のサイトなんですが、数キロメートル?の誤差でビジターのおおよその位置を表示してくれる素敵なサービスです。一時期、非常に重くてエラーを頻発していましたが、最近はまた復旧しているようです。貼り付けたころは九州方面からのアクセスはほとんどなく、北海道からも一人程度だったのですが、現在見ると、この24時間だけでも日本各地からアクセスされていることが分かります。

こういうアクセス解析に関心のある方は、いつでもxoopsサイト右上の“訪問ユーザ分布”というリンクをクリックしてみてください。

cakephp_users_thmb.PNG


ラベル:cakephp
posted by SDozono at 09:49| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2009年04月07日

CakePHPの壁紙

非公式だそうです。
CakePHP Wallpapers (Not Official)

cakephp_wallpaper.PNG
http://www.jotlab.com/2009/03/24/cakephp-wallpapers-not-official/

Mattは本当にいろいろ見つけてくる。
http://www.pseudocoder.com/archives/2009/04/06/cakephp-digest-11-food-metaphors/
ラベル:cakephp 壁紙
posted by SDozono at 17:29| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

prototype/mootools/jquery/etc -> JSHelper

1.3ブランチには、mark_storyによる下記のコードがあります。
楽しみですね!

jquery_engine.php
mootools_engine.php
prototype_engine.php

js.php

あらゆるjavascriptライブラリを統一的に使える JSHelperの構想がこちらに。
http://thechaw.com/cakephp/wiki/RFCs/Ajax_Helper_rebuild
ラベル:cakephp
posted by SDozono at 14:32| 東京 ☀| Comment(0) | TrackBack(1) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2009年04月04日

PHPで作ること、作らないほうが良いこと

ひさびさの更新です。

CakePHPに関しては、なんかこう、自分の中では“普通の”ツール扱いになってしまい、MySQLやphpMyAdminを使うのと同じ感覚になってきたため、それほどここに書き込む内容もなくなってきたような…。

CakePHP.orgができたばかりの頃は、できないことやバグも多いということで、わいわいがやがやとした雰囲気がありましたが、その頃の人たちの声が今ではWeb上には出なくなり、Ticketもそれほど面白くなくなってきた?ような気もします。

1.2の成熟期かも。1.3や2.0になった時にはまた活発になるかもしれません。とはいえ、日本では安藤さん主導でハンズオンセミナーが開かれ、まだまだ驚くようなプロジェクトや仕掛けが出てきそうな気配です。gwooも日本に期待しているのではないでしょうか。

gwoo says:
so yandod tells me that next week our cakephp friends in Japan plan to work for 24 hours straight. I wonder what they will come up with....


今回、“htmlをPDF化するオンラインツール”を作る必要が出てきました。具体的には、見積もりをWeb上で作るオープンソースのソフトがあって、それにはすでにそういうコードが入っていたんですが、日本語出力に対応していなかったんです。PHPで定番と言えば、

FPDF
や、
TCPDF
などがあり、どちらも日本語を出力する方法があります。

しかし、今回のプロジェクトでは、html2psを使っていました。
html2ps and html2pdf

FPDFや、TCPDFにはできない芸当をhtml2psはやってしまいます。
PHPだけで、かなりの数のサイトのWeb画面を生成してしまうのです。
まるで、"PHPでブラウザを作る"みたいなプロジェクトです。
HTMLを独自にパースして合成してゆくので。

最初、これをちょっといじれば日本語化対応できるかな、と思い、コードを読み始めましたが、これはちょっと手に負えないな、と思い、やめてしまいました。同時に、「ここまでやるか〜」というような気分になったのも確かです。

TCPDFはアルファチャンネルにも対応している、と書いてあるのですが、実際に使ってみると、計算に時間がかかりすぎました。

PHPは便利なので、やろうと思えば、「画像認識OCRをPHPコードで」とか、「Webページの画像を合成」とか、もっといけば「音声合成・認識をPHPで」とか、「もしかしたらできるんじゃないの」と思ってしまうかもしれません。実際に画像認識もがんばっている人が入るみたいだし…。

ただ、道具は使いようというか、「本当にそれはメリットがあるのか」ということを考えないと、ただの自己満足に終わる危険があります。
数日、html2psを日本語化できないかコードを追い続けてさじをなげた後、「これだったらC#で書いたほうが速いかも」と思い、Visual Studioを立ち上げました。

その結果、動作コードは半日もかからずに出来上がってしまいました。C#でPDFを出力するオープンソースのライブラリがこんなにたくさんあるとは。ライブラリに付属のサンプルをちょっといじるだけでできてしまいました。URLから画像を生成するツールと組み合わせたら、あっという間に完成です。日本語ももちろん対応しているし、何より速度が大違い。

Windows上で動作すれば今回は良いので、これでおしまい、ということにしました。それと、「それ、本当にPHPでするべき仕事?」というのは考えないといけないと思います。

[追記]
今頃気がつきましたが、

Takeshi Kannoさんの、
http://libharu.org/
と、これをPHP上で使えるようにした
PECLのext/haru extension
http://jp.php.net/manual/ja/book.haru.php
でも良かったかも。

Dynamically Generating PDF Files with PHP and Haru
http://devzone.zend.com/article/4044-Dynamically-Generating-PDF-Files-with-PHP-and-Haru-

http://php.net/manual/ja/function.imagegrabwindow.php
でIEのキャプチャも取れる〜。
posted by SDozono at 15:14| 東京 ☁| Comment(3) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする