2007年09月25日

Changeset 5691 & 5669

多言語&ユニコード!

changed i18n schema to use only one db table for translations
https://trac.cakephp.org/changeset/5669

Initial start of Unicode support
https://trac.cakephp.org/changeset/5691

“もちろん”mb_string関数は使われていませんでした。
(世界的に見れば、mb_stringが入っていない環境のほうが多い??)

string.test.php には、下記のようなテストがありました。物申すなら今のうち。

= QUOTE from string.test.php =========================

$string = 'abcdefghijklmnopqrstuvwxyz';
$result = String::utf8($string);
$expected = array(65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370);
$this->assertEqual($result, $expected);


$string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
$result = String::utf8($string);
$expected = array(65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400);
$this->assertEqual($result, $expected);

$string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
$result = String::utf8($string);
$expected = array(65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438);

$this->assertEqual($result, $expected);
$string = '一二三周永龍';
$result = String::utf8($string);
$expected = array(19968, 20108, 19977, 21608, 27704, 40845);
$this->assertEqual($result, $expected);

-------------------------------------------
$string = 'abcdefghijklmnopqrstuvwxyz';
$find = 'z';
$result = String::strpos($string, $find);
$expected = 25;
$this->assertEqual($result, $expected);

$string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
$find = 'ク';
$result = String::strpos($string, $find);
$expected = 23;
$this->assertEqual($result, $expected);

$string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
$find = 'ル';
$result = String::strpos($string, $find);
$expected = 32;
$this->assertEqual($result, $expected);

posted by SDozono at 11:17| 東京 ☁| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2007年09月22日

Quick Hack to change CakePHP to use object-based models

One of the CakePHP user in Japan wrote an interesting article.

Happy EngineerLife
"Use models of CakePHP as entities"

It explains how to change (or add) a CakePHP's model a "data object".

He added some functions to App_Model and App_Controller and make possible to write this code.


========================================
class ItemsController extends AppController
{
var $name = 'Items';

function index($id) {
$entity = $this->createEntity('Item', $this->Item->read(null, $id));
$this->set('item', $entity);
}
}
========================================


and then you can write your views in this way.

==============================================
//instead of "echo $item['Item']['price'];"
echo $item->g('price'); (or, echo $item->get('price'))
//You can calculate dynamically with Model values.
echo $item->taxOnPrice();
//You can set a value from View.
echo $item->s('price', 5000);
==============================================

posted by SDozono at 14:11| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP Tips | このブログの読者になる | 更新情報をチェックする

2007年09月21日

CakePHP tutorials at www.scribd.com











タグ:cakephp tutorials
posted by SDozono at 10:34| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP Tips | このブログの読者になる | 更新情報をチェックする

2007年09月20日

Sorting Model data with usort()

For example, if you want to achive like this:


Controller -------------------
$data1 = $this->Reservation->findAll();
$data2 = $this->AdditionalReservation->findAll();

//If needed, change $data2's array name
"AdditionalReservation" to "Reservation". Then,

$data = array_merge($data1, $data2);

$data = $this->Reservation->sortbytime($data);
$this->set("reservations", $data);
------------------------------

You can use this technique.

Model ------------------------
function myCmp($array1, $array2)
{
$time1 = strtotime($array1['Reservation']['rsv_time']);
$time2 = strtotime($array2['Reservation']['rsv_time']);
if($time1 == $time2){
return 0;
}
return ($time1 > $time2)? 1 : -1;
}

function sortbytime($data)
{
usort($data, array("Reservation", "myCmp"));
return $data;
}
------------------------------
タグ:tips cakephp Model
posted by SDozono at 11:44| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP Tips | このブログの読者になる | 更新情報をチェックする

2007年09月19日

mumu.php instead of Smarty

これはCakePHPと親和性が高い!と思ったら、「MuMuは、DjangoというすばらしいWebフレームワークに強く影響を受けています」とありました。

PHP向けテンプレートエンジン MuMu
http://qwik.jp/mumu/

1枚ファイルの中にクラスがある格好なので、Vendorディレクトリに入れればすぐ使えそうです。Smartyよりもずっとシンプルで、Cakeとうまくやっていけるかも。

Rails に影響された CakePHPというPHPフレームワーク
+
Django に影響された mumu.php というPHPテンプレートエンジン

この組み合わせ、なかなか面白そうです。
タグ:mumu.php
posted by SDozono at 14:11| 東京 🌁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2007年09月16日

ついに1.2マニュアルが登場

ついに、1.2マニュアルのプレビューが登場しました。
http://tempdocs.cakephp.org/

訂正:まだ、レビュー前の未公開ドキュメントだったそうです。

記事:
cakebaker
First version of the CakePHP 1.2 manual online

1.2の新機能などについて、これから詳しく追加されていくのではないか、と思います。

ちなみに、現在の日本語マニュアルは1.1用で、こちらにあります。
http://cakephp.jp/doc/

[追記]
あれ〜っ、これは読めるなぁ。
https://cakeforge.org/plugins/scmsvn/viewcvs.php/?root=cakedocs
posted by SDozono at 23:01| 東京 ☀| Comment(0) | TrackBack(0) | CakePHP Tips | このブログの読者になる | 更新情報をチェックする

2007年09月11日

PDT(Eclipse)+xdebug

ちょっと苦労しましたが、Eclipse PDTとxdebugを組み合わせて、cakephpのデバッグ環境を作れたみたいです。これから実際に使い始めるわけですが…。

以前、ほかのEclipseプロジェクトを試した時には、どうしてこんなに遅いんだろうという感触で使う気にもならなかったのですが、今回、入れてみたところ、思ったより速かったので驚きました。PDTだからなのか、それともマシンのスピードによるのか。起動時のみ待たされますが、その後はわりとさくさく動きます。

Zend Debuggerを最初に入れたのですが、mod_rewriteをOFFの設定にしないとうまく動きませんでした。MLでもmod_rewriteは使えない、という意見がありました。xdebugならうまくいきます。

Debugging Cake app via DBG or Zend Debugger
debugging methods with cakePHP

xdebugに変更したところ、mod_rewriteそのままでうまく動くようになりました。(設定がおかしいと、breakpointがうまく動きません。)

しばらく使い勝手を試してみようと思います。なお、画面は、最新の decorate.php で焼いてみたところです。コマンドラインでテーブルを指定するだけで、ソート機能、検索(サーチ)機能、ページングのついたDBテーブル編集画面のMVCファイルが自動生成されます。ついでに、今回から、セキュリティコンポーネントもデフォルトで使うようにしました。トークン形式のCSRF対策もできています。

PDT+XDEBUG.PNG

PDT
http://www.eclipse.org/pdt/
"The PDT project is working towards providing a PHP Development Tools framework for the Eclipse platform."

xdebug
http://www.xdebug.org/
The Xdebug extension helps you debugging your script by providing a lot of valuable debug information.

Prebuilt Binary of XDebug Support
から、現在有効なバイナリを取ってきて、PDTに入れる。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=169408
タグ:PDT xdebug cakephp
posted by SDozono at 13:33| 東京 🌁| Comment(0) | TrackBack(3) | CakePHP Tips | このブログの読者になる | 更新情報をチェックする

Large web sites in Japan made by CakePHP

Japanese sites made by CakePHP.

Nifty Bookmark Site "トピックイット!"(Topic it!)
Nifty is one of the largest and oldest ISP in Japan.
topicit.PNG

diglog - CD exchange community site

diglog.PNG

diglogはCakePHPで動いています。
http://sideprj.blogspot.com/2007/09/diglogcakephp.html

news lereases:
http://internet.watch.impress.co.jp/cda/news/2007/01/16/14468.html
http://internet.watch.impress.co.jp/cda/news/2007/05/08/15615.html
http://internet.watch.impress.co.jp/cda/news/2007/05/08/15615.html

posted by SDozono at 13:15| 東京 🌁| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2007年09月05日

Cakeよく進む

いよいよ、Cakeカンファレンスが米国で開かれるかも?

CakePHP Resources
http://www.littlehart.net/atthekeyboard/2007/08/17/cakephp-resources/
"Also, rumours of a CakeFest conference for later this year have me motivated to get a bunch of stuff done so I have something to give some talks about."

あと、Cakeの開発者たちによる、こんなサイトが出来たようです。
Cakeの開発者たち自身が、サイトの構築を請け負う、ということでなかなか豪華なサービスだと思います。頼むなら今のうち?

Home of Cake Development Corporation
http://www.cakedevelopment.com/

1.2に搭載されている、HABTMリレーションをより簡単に扱うための“with”について、解説されています。
A Glimpse Inside CakePHP 1.2:
http://www.littlehart.net/atthekeyboard/2007/09/04/a-glimpse-inside-cakephp-12/
posted by SDozono at 16:32| 東京 ☔| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2007年09月03日

Cake Software Foundationによる1.2プレゼン

この間、地元でのPHPユーザ会での発表があったようで、PDFが公開されています。文書が公開されることは珍しいので、興味深いものです。

http://cakephp.org/files/OCPHP.pdf
http://php.meetup.com/327/calendar/6016785/
タグ:cakephp
posted by SDozono at 19:07| 東京 ☁| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする

2007年09月01日

間もなくCake本登場!!

今日のPHPカンファレンスで安藤さんが発表されていると思うので、ここら辺で発表・・・。

世界に先駆けて?CakePHPフレームワークの解説本を出すことになりました。

CakePHPの紹介
Cakeに特徴的な、モデルの使い方詳説
コントローラ、ビューについても解説
PHPプログラミングで必要とされるセキュリティの知識、CakePHP流に実現する方法
Ajaxの隅から隅まで

マイコミ出版から、10月に出版される"予定"です。
執筆はあらかた終わり、現在、最終的な詰めに入っている段階です。
Cake Software Foundation とも連絡を取り、日本のCakePHPユーザに向けたメッセージももらえました。

執筆は、

・PHPユーザ会でアクティブに活動されている、Yusuke Andoさん
「CakePHPの何か」
http://puyo2.upper.jp/cake/

・Cakeinfoや、"twitter検索"の作者でもあり、これまでフレームワークのセキュリティ面で貢献されている Masashi Shinbaraさん

Cakeinfo
http://www.1x1.jp/blog/2007/01/cakephp_cakeinfo.html
twitter検索
http://twitter.1x1.jp/search/

・そして、Shunro Dozono (CakePHP.jp管理人)

が担当しました。
Cakeユーザが頭をかきむしらないで開発に励むための、役立つ一冊になってほしいと思います。

あともうしばらくお待ちください。
posted by SDozono at 20:43| 東京 ☁| Comment(3) | TrackBack(1) | CakePHP General | このブログの読者になる | 更新情報をチェックする

DBDesigner 4 と連携してER図から半自動でアプリ生成

MLで話題になっていました。

dbdesigner2cake : DBDesigner 4 Scaffold Tools for CakePHP
http://cakeforge.org/frs/?group_id=162
http://www.cirello.org/dbdesigner2cake/download.html

ER図からCakePHP用プログラムを自動生成するファイルです。
オープンソースの世界でも、マウスでデータベースを作成してポンと押せば、データベースの管理・編集画面があっという間にできる時代が、ついにやってきたわけですね。

ちなみにDBDesigner 4 の日本語版を作成している方もいるようです。

DBDesigner 4 日本語化サイト
yossyさん
http://dbdesigner.iimp.jp/
Windows版とLinux版、ソースが公開されています。
引用==============
* 直感的なGUIによるERモデル図のモデリング
* ERモデル図からSQL文(CREATEやDELETE)の自動生成
* データベースからリバースエンジニアリングによるERモデル図の生成
* データベースとERモデル図の同期化機能
* 軽快な動作によるストレスのないモデリング環境
* データベースへ直接接続してSQLクエリを実行可能
* クエリ結果のレコードに対して編集が可能
* MySQL Workbench が DBDesigner4フォーマット読み込みをサポートしそうなためツールの移行も安心
* プラグイン「HTML Report」によりテーブル定義一覧をHTMLで出力可能
* プラグイン「SimpleWebFront?」により簡単なマスタメンテwebアプリ(PHP)の自動生成が可能
==================

ここまでくると、市販のデータベースからアプリを自動生成するツールなどの範疇を超えた開発環境になりますね。

posted by SDozono at 20:27| 東京 ☁| Comment(1) | TrackBack(1) | CakePHP General | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。